我编写了一个使用C#的基本实用程序的dll库。但对于平台独立性,我想将它移植到silverlight。可能吗?如果可能的话,那么该怎么做呢?如何将C#.net .dll移植到siverlight以获得更多平台独立性?
或者你们有其他建议吗?
我编写了一个使用C#的基本实用程序的dll库。但对于平台独立性,我想将它移植到silverlight。可能吗?如果可能的话,那么该怎么做呢?如何将C#.net .dll移植到siverlight以获得更多平台独立性?
或者你们有其他建议吗?
如果您为Silverlight4构建DLL,则可以从.NET项目中引用它;但不是相反的。见Sharing Silverlight Assemblies with .NET Apps。
在SL和.Net之间共享源代码的另一种方法是使用链接文件。
在.net解决方案中,添加一个silverlight库项目。
添加>现有项目>浏览到.net项目中的源文件,选择它们,单击“添加”按钮上的向下箭头并选择“添加为链接”。
在很多情况下,不需要修改。在存在较小差异的情况下,请在源代码中使用构建标志和条件。例如
#if SILVERLIGHT
#else
#endif
这对我来说很好,特别是当我想共享一个DTO库时。
我的建议是创建不同的项目文件(对于.NET和SL)。然后将通用文件添加到每个文件中。
许多类和方法都可以在.NET和SL上使用,因此可以使这两个项目共享相同的代码。
这不适用于所有情况。例如,我的开源项目#SNMP使用UDP相关的类,但SL没有任何UDP相关的东西。
我个人的选择是限制SL应用程序的大小,并将必要的部分移动到后端WCF应用程序中。
你需要的是一个可移植类库:http://msdn.microsoft.com/en-us/library/gg597391.aspx
这样可以共享.Net和Silverlight和Windows Phone的项目之间的项目/ DLL。
注意,通常Silverlight模板项目已经具有为此用法定义的标志SILVERLIGHT。 – AnthonyWJones 2010-04-30 11:55:32
@安东尼,谢谢你的提醒。它已经有一段时间了,只是从我失败的记忆中回答。 – 2010-04-30 11:57:08