如何为Silverlight和CLR使用相同的库

时间:2009-05-07 03:50:36

标签: silverlight build clr

我有一个具有自定义域逻辑的库。有些东西很重要,依赖于Silverlight运行时之外的核心运行时。

是否可以针对2个不同的运行时编译相同的代码并引用来自不同消费者的不同风格?如何

4 个答案:

答案 0 :(得分:3)

有几种方法可以达到你想要的效果。

  1. 您无法在Silverlight中引用完整的.net框架程序集,但您可以反过来执行此操作,因此您可以针对SL进行编码,然后在针对完整.Net编译的项目中引用SL项目。

  2. 您可以将其他项目中的文件添加为共享源代码的链接,而不是引用程序集

  3. 更好的是,您可以使用它附带的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文件添加到两个解决方案中。