扩展.NET 2.0类库以供WCF使用

时间:2010-01-11 19:08:44

标签: .net wcf datacontract

我们发布了一个必须与.NET 2.0保持兼容的类库。但是,我们还希望在内部为基于WCF的项目使用此类库。

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

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

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

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

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

另一种方法是添加WCF属性(DataContractAttribute等),并使用.NET 3.0程序集进行构建。

在.NET 2.0下运行应用程序时,拥有运行时不可用的程序集的属性通常不会导致问题。

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

答案 1 :(得分:0)

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