我有一个具有自定义域逻辑的库。有些东西很重要,依赖于Silverlight运行时之外的核心运行时。
是否可以针对2个不同的运行时编译相同的代码并引用来自不同消费者的不同风格?如何
答案 0 :(得分:3)
有几种方法可以达到你想要的效果。
您无法在Silverlight中引用完整的.net框架程序集,但您可以反过来执行此操作,因此您可以针对SL进行编码,然后在针对完整.Net编译的项目中引用SL项目。
您可以将其他项目中的文件添加为共享源代码的链接,而不是引用程序集
更好的是,您可以使用它附带的Prism v2和Project Linker插件让Visual Studio管理项目之间的文件链接。您可以详细了解多平台定位here
答案 1 :(得分:2)
一个简单,高级的答案是您将公共代码放在CLR和Silverlight程序集引用的程序集中。任何特定于任一平台的内容都必须从公共代码中抽象出来,并在CLR和Silverlight项目中实现。
看到继承和多态的奇迹;)
[旁注:如果你发现你自己的复制粘贴代码(片段或整个cs文件),你做的事情非常错误]
答案 2 :(得分:1)
您是否考虑过使用Workflow Foundation来完成任务?
P.S。问题非常广泛。你能提供一个样品,以便我们可以使用吗?
答案 3 :(得分:0)
将两个类库项目(SLLib,CLRLib)添加到您的解决方案中。然后将所有.cs文件添加到两个解决方案中。