扩展.NET2.0类库以供WCF使用

扩展.NET2.0类库以供WCF使用,.net,wcf,datacontract,.net,Wcf,Datacontract,我们发布的类库必须与.NET2.0兼容。但是,我们也希望在内部将该类库用于基于WCF的项目 例如,通过创建DataContractSurrogate对象来映射2.0类,Reading提出了一种使用2.0类库的方法。然而,我们的对象层次结构是丰富而深刻的,这将是乏味而难以维护的 因为我们确实控制了源代码,所以我正在寻找一种更简单的方法 一种想法是将DataConract属性添加到源代码中,并在针对2.0运行时构建解决方案时提供DataContractAttribute的“空”实现,在针对3.0及更

我们发布的类库必须与.NET2.0兼容。但是,我们也希望在内部将该类库用于基于WCF的项目

例如,通过创建DataContractSurrogate对象来映射2.0类,Reading提出了一种使用2.0类库的方法。然而,我们的对象层次结构是丰富而深刻的,这将是乏味而难以维护的

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

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

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


有更好的方法吗?

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

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


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

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

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


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

通过visual studio中提供的代码生成或T4模板,您可以实现目标。另一方面,我不确定是否可以用T4调整VisualStudio项目文件。
另一个可能的缺点是T4脚本的调试比普通cs文件更繁琐。

您可以通过visual studio中提供的代码生成或T4模板来实现目标。另一方面,我不确定是否可以用T4调整VisualStudio项目文件。 另一个可能的缺点是T4脚本的调试比普通cs文件更繁琐