Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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
C# 如何将C.net.dll移植到siverlight以实现更大的平台独立性?_C#_Silverlight_Dll - Fatal编程技术网

C# 如何将C.net.dll移植到siverlight以实现更大的平台独立性?

C# 如何将C.net.dll移植到siverlight以实现更大的平台独立性?,c#,silverlight,dll,C#,Silverlight,Dll,我已经使用C的基本实用程序编写了一个dll库。但是为了平台独立性,我想将它移植到silverlight。可能吗?如果可能的话,那怎么做呢 或者你们还有其他建议吗 如果为Silverlight4构建DLL,则可以从.NET项目引用它;但不是相反。请参阅。在SL和.Net之间共享源代码的另一种方法是使用链接文件 在.net解决方案中,添加silverlight库项目 添加>现有项>浏览到.net项目中的源文件,选择它们,单击“添加”按钮上的小向下箭头并选择“添加为链接” 在很多情况下,不需要修改。在

我已经使用C的基本实用程序编写了一个dll库。但是为了平台独立性,我想将它移植到silverlight。可能吗?如果可能的话,那怎么做呢


或者你们还有其他建议吗

如果为Silverlight4构建DLL,则可以从.NET项目引用它;但不是相反。请参阅。

在SL和.Net之间共享源代码的另一种方法是使用链接文件

在.net解决方案中,添加silverlight库项目

添加>现有项>浏览到.net项目中的源文件,选择它们,单击“添加”按钮上的小向下箭头并选择“添加为链接”

在很多情况下,不需要修改。在存在微小差异的情况下,请在源代码中使用生成标志和条件。e、 g

#if SILVERLIGHT 

#else

#endif

这对我来说效果很好,尤其是当我想共享DTO库时。

我的建议是为.NET和SL创建不同的项目文件。然后将公共文件添加到每个项目中

NET和SL上都有许多类和方法,因此可以使这两个项目共享相同的代码

这并不适用于所有场景。例如,我的开源项目SNMP使用UDP相关的类,但SL没有任何UDP相关的东西


我个人的选择是限制SL应用程序的大小,并将必要的部分移动到后端WCF应用程序中。

您需要的是一个可移植类库:


这种方式可以在.Net、Silverlight和Windows Phone项目之间共享project/DLL。

注意,Silverlight模板项目通常已经定义了Silverlight标志,用于此用途。@Anthony,谢谢提醒。这已经有一段时间了,我只是从我失败的记忆中得到了回答。