从WCF服务生成的模型重命名属性名称
本文关键字:重命名 属性 模型 WCF 服务生 | 更新日期: 2023-09-27 18:28:29
我目前正在使用一个不符合开发中应用程序命名标准的遗留WCF服务。现在,当针对REST服务进行开发时,在我自己创建模型的地方,重命名属性非常容易,如下所示:
[DataContract]
public class SomeModel
{
[DataMember(Name = "id")]
public string Id { get; set; }
// ...
}
但是有了WCF服务,它会生成模型,我不想编辑生成的文件,因为当有人再次触发代码生成时,我所有的更改都会丢失。那么,在使用WCF服务时,我该如何实现同样的目标呢?
How about adapter pattern?
这将允许您在应用程序中使用类对象myClass,而当它被传递到服务时,您可以拥有自动生成的exposedClaSs。
如果查看生成的代码,就会发现DataContract类是分部的。
您可以将具有相同分部类定义的文件添加到项目中,并使包装器属性具有正确的名称。
在我看来,使用代理生成器完全是在浪费时间:您想要做的是手动管理您的类,并让其他东西以一种不会影响您并且能够适应更改的方式处理底层实现细节。我们在当前项目中这样做的方式是使用castle动态代理将调用调度到通道工厂。
我们做了这样的事情http://www.planetgeek.ch/2010/10/13/dynamic-proxy-for-wcf-with-castle-dynamicproxy/并且发现它运行得非常好。