我们编写了一个小型Windows类库,它实现了一些标准类型的扩展方法(最初是字符串).我将它放在一个库中,这样我们的任何项目都可以通过简单地引用它并使用XXX.Extensions添加它来使用它.
当我们想在Silverlight中使用其中一些方法时,出现了一个问题.尽管所有代码都是兼容的,但是在Silverlight中无法引用Windows库,因此我们创建了一个Silverlight库,该库具有指向相同类文件的链接,并将编译器指令放入类中以允许使用不同的声明和命名空间.这个工作正常,直到今天我向Windows扩展库添加了一个新类,并意识到我必须记住将类链接到Silverlight库中.
这并不理想,我想知道是否有人可能有更好的方法在Windows和Silverlight项目之间共享扩展方法和其他帮助程序代码.
您无法将Silverlight程序集中的引用设置为常规.NET程序集,但您可以反过来这样做.
因此,创建一个共享的Silverlight程序集并将代码添加到该程序集.现在,您可以将常规.NET和其他Silverlight程序集的引用设置为共享Silverlight程序集.
限制是你只能在那里放置可以在.NET和Silverlight CLR上运行的代码,但这与共享代码没有什么不同.
由于这个问题已得到解答,因此Microsoft的可移植类库提供了一个新的解决方案.这是他们宣布的博客文章.
我正准备开始与他们一起玩,以便在我正在编写的silverlight和一些服务器端代码之间共享代码,所以目前无法通过链接添加太多内容.