【问题标题】:Rename property names from WCF service generated model从 WCF 服务生成的模型重命名属性名称
【发布时间】:2013-08-23 10:38:19
【问题描述】:

我目前正在使用不符合开发中应用程序命名标准的旧版 WCF 服务。现在,在针对 REST 服务进行开发时,我自己创建模型,这样重命名属性真的很容易:

[DataContract]
public class SomeModel
{
    [DataMember(Name = "id")]
    public string Id { get; set; }

    // ...
}

但是使用 WCF 服务它会生成模型,我不想编辑生成的文件,因为当某人/事物再次触发代码生成时,我的所有更改都会丢失。那么在使用 WCF 服务时如何实现相同的目标呢?

【问题讨论】:

  • 不是在 Visual Studio 中自动生成代码并通过 svcutil.exe 执行它并添加它创建的 .cs 文件(在你调整它之后)是可以接受的吗?
  • @ScottChamberlain 谢谢,我会去看看。我对 WCF 主题很陌生,所以我认为可能有一个非常简单的解决方案可以解决我的问题..

标签: c# .net wcf


【解决方案1】:
How about adapter pattern?

这将允许您在应用程序中使用您的类对象 myClass,而当它被传递给服务时,您可以拥有自动生成的暴露 ClaS。

【讨论】:

    【解决方案2】:

    在我看来,使用代理生成器完全是在浪费时间:您要做的就是手动管理您的类,并让其他东西以一种不会影响您并且具有弹性的方式处理底层实现细节改变。我们在当前项目中这样做的方式是使用城堡动态代理将调用调度到通道工厂。

    我们已经完成了类似http://www.planetgeek.ch/2010/10/13/dynamic-proxy-for-wcf-with-castle-dynamicproxy/ 的操作,并且发现它运行良好。

    【讨论】:

      【解决方案3】:

      如果您查看生成的代码,您会发现 DataContract 类是部分的。

      您可以将具有相同分部类定义的文件添加到项目中,并使用正确的名称创建包装器属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-22
        • 1970-01-01
        • 2015-01-07
        相关资源
        最近更新 更多