Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何确定在.Net中创建的dll是否可以在Silverlight中工作?_Silverlight_Windows Phone 7 - Fatal编程技术网

如何确定在.Net中创建的dll是否可以在Silverlight中工作?

如何确定在.Net中创建的dll是否可以在Silverlight中工作?,silverlight,windows-phone-7,Silverlight,Windows Phone 7,如何确定为桌面应用程序(在.Net中)创建的DLL是否可以在Silverlight应用程序中工作? 附加问题:由于SilverLight for Windows Phone 7是SilverLight的一个子集,如何确定dll是否在为Windows Phone 7创建的应用程序中工作 注意:由于WP7不支持p/Invoke,这意味着任何使用p/Invoke的.Net dll都不应适用于WP7 silverlight应用程序。我想知道是否有任何简单的方法来确定这一点(无需运行应用程序本身) 原因是

如何确定为桌面应用程序(在.Net中)创建的DLL是否可以在Silverlight应用程序中工作? 附加问题:由于SilverLight for Windows Phone 7是SilverLight的一个子集,如何确定dll是否在为Windows Phone 7创建的应用程序中工作

注意:由于WP7不支持p/Invoke,这意味着任何使用p/Invoke的.Net dll都不应适用于WP7 silverlight应用程序。我想知道是否有任何简单的方法来确定这一点(无需运行应用程序本身)


原因是我需要一些图像处理算法的实现,并想在购买之前确定它们是否能在Windows Phone 7平台上工作。

简而言之,不会。这两个CLR运行时完全不同,尽管它们有相似的接口

对此有三个警告:

(1) 如果您有源代码,并且该代码不依赖于Silverlight不支持的任何内容,则可以通过引用Silverlight项目中的源文件,尝试为Silverlight交叉编译它。有时,您可以使用较小的源代码调整,或者明智地使用#if defines。有时候你不能

(2) 在Silverlight 4/.NET 4中,有时可以在.NET中重用为Silverlight编译的程序集。CLR团队有一篇博文。但是,这是一个非常有限的解决方案,因为(a)首先必须为Silverlight编译程序集,(b)这些可移植程序集只能调用一小部分本身可移植的其他程序集,例如Mscorlib、System、System.Core等。(我应该注意,这对您不起作用,因为您的目标是基于Silverlight 3的WP7。)


(3) 你可以偶尔乱搞一下DLL的内部结构,让编译后的DLL相信它是Silverlight DLL。有一篇关于如何做的博客文章。但同样,这是一个非常有限的解决方案,因为程序集无法调用Silverlight中未包含的任何方法或程序集。这包括一些非常基本的东西,比如Buffer.BlockCopy()的一些重写,诸如此类的东西。如果这项技术能与复杂的商业图像处理DLL一起使用,我会感到惊讶,但奇怪的事情发生了。

跳过程序集可移植性的技术问题,为什么不联系供应商,询问他们是否在手机上测试代码?即使产品在那里不起作用,你也可能会激励供应商将其移植到手机上,这样他们就可以把它卖给你(以及这个新兴市场的许多其他开发人员)来赚更多的钱。如果我在Reflector中查看.Net dll,而不是查看它引用的其他dll列表,是否有元数据可以检查,看它是否是为SilverLight框架构建的(以及是否是为WindowsPhone7构建的)?