在C#Com包装器中使用Native dll并在silverlight中使用dll

作为我项目的一部分,我需要在Silverlight中使用一些Unamanged代码dll。 如果我将这些非托管dll包装在C#dll中,我将能够从silverlight访问本机dll。 我使用Visual Studio 2010和Silverlight 4.0

使用Silverlight 4,您可以调用本地计算机上安装的COM对象。 但是,要执行此操作,用户必须选择允许Silverlight应用程序完全访问其计算机。

此外,COM对象需要已安装在计算机上。 因此,在使用Silverlight应用程序中依赖它们的任何function之前,用户首先必须单独下载并安装DLL。

Silverlight在浏览器沙箱中运行,因此它不允许您直接调用非托管程序集。 虽然您将非托管代码包装在C#程序集中,但仍然会在受同一安全限制限制的同一应用程序域中加载。

我已经读过你可以使用silverlight和ActiveX之间的html互操作性,但我自己没有经历过。 或者,您可以部署完整的WPF应用程序,如果使用适当的证书和安全设置对其进行签名,则可以访问非托管代码 – 如果这是一个选项。