【问题标题】:Extending .NET 2.0 class library for WCF use扩展 .NET 2.0 类库以供 WCF 使用
【发布时间】:2010-01-11 19:08:44
【问题描述】:

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

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

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

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

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

有更好的方法吗?

【问题讨论】:

    标签: .net wcf datacontract


    【解决方案1】:

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

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

    (如果你真的尝试访问属性,你会得到一个错误,但这不太可能而且很容易避免)。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-05
        • 2012-06-17
        • 1970-01-01
        相关资源
        最近更新 更多