作为我项目的一部分,我需要在Silverlight中使用一些Unamanged代码dll。如果我将这些非托管dll包装在C#dll中,我将能够从silverlight访问本机dll。我使用Visual Studio 2010和Silverlight 4.0
答案 0 :(得分:9)
使用Silverlight 4,您可以调用本地计算机上安装的COM对象。但是,要执行此操作,用户必须选择允许Silverlight应用程序完全访问其计算机。
此外,COM对象需要已安装在计算机上。因此,在使用Silverlight应用程序中依赖它们的任何功能之前,用户首先必须单独下载并安装DLL。
答案 1 :(得分:0)
Silverlight在浏览器沙箱中运行,因此它不允许您直接调用非托管程序集。虽然您将非托管代码包装在C#程序集中,但仍然会在受同一安全限制限制的同一应用程序域中加载。
我已经读过你可以使用silverlight和ActiveX之间的html互操作性,但我自己没有经历过。或者,您可以部署完整的WPF应用程序,如果使用适当的证书和安全设置对其进行签名,则可以访问非托管代码 - 如果这是一个选项。