2010-01-11 73 views
1

我们发布了一个必须与.NET 2.0兼容的类库。但是,我们也想在内部使用这个类库来执行基于WCF的项目。扩展用于WCF的.NET 2.0类库

读取例如expose-object-from-class-library-using-wcf通过创建DataContractSurrogate对象来映射2.0类提供了一种使用2.0类库的方法。但是,我们的对象层次是丰富而深刻的,这将是乏味和难以维护的。

由于我们确实控制源代码,所以我正在寻找一种更简单的方法。

一个想法是将DataConract属性添加到源代码中,并在解决方案构建为2.0运行时时提供DataContractAttribute的“空白”实现,并在构建解决方案时使用System.Runtime.Serialization实现瞄准3.0和更新的运行时。这可以通过手动调整构建之间的引用来完成。

有没有更好的方法来实现这种方法?

有没有更好的方法?

回答

1

它添加WCF属性(DataContractAttribute等),并与.NET 3.0程序集一起构建的替代方法。

当您在.NET 2.0下运行应用程序时,从运行时不可用的程序集中获取属性通常不会导致问题。

(如果您实际尝试访问属性,则会出现错误,但这不太可能且很容易避免)。

0

您可以通过代码生成实现您的目标,或者在Visual Studio中提供T4模板。另一方面,我不确定是否可以用T4调整visual studio项目文件。 另一个可能的减号是T4脚本比纯cs文件更乏味的调试。