在我们的项目,我们是消耗WCF web服务暴露在中心位置,因为服务 basicHttpBinding.

在客户的桌面应用程序,我们需要消耗的那些web服务.我能够产生代理类使用WSDL.exe.

但是,我需要转换数据/班级给予的服务进入我的地方类,现在我xmlserialzing这些课目的给予的服务和反序列化到我的地方类别作为这两个类架构相匹配完全相同。

是否有更好的办法了,我可以吗? 或 我需要分配给每个酒店自一个一流的另一个?

感谢 nRk。

有帮助吗?

解决方案

  • 宣布类手动而不是产生。这是最干燥的解决方案。

  • 尝试 Automapper

其他提示

如果你有你的本地类的控制(它们不是生成的代码,或者您生成它们,你自己),你可以使用XML属性来装饰你的类,所以您可以序列,并将其反序列化到你的工作,XML和你不必为您的属性具体名称。除了这一点,你可以在你的本地类具有附加属性。

如果你还没有在定义你的本地类的控制,那么你必须定义一个转换器或elder_george提到的,使用AutoMapper。

使用人工书写器IMO是最快的方式,你可以定义他们对你的本地类隐式转换操作符。

我已经做了序列化/反序列化的东西我自己,就像你了。如果你的类具有相同的属性,代理类,你可以编写一个使用反射通过代理的属性进行迭代,并设置你的类的相应属性的辅助方法。只要属性名称是相同的,即一个方法应该在所有类工作。

一些想法:

  • 使用大会分享通过WCF;这可以让你使用的同样的实际装在两端。只要这是一个也可与检组件,这是现(不巨大的便携式,虽然).这个是 /reference (还 /r)在 svcutil.exe, 或者您可以做它通过IDE
  • 使用 DataContractSerializer 和往返旅行(像你已经;只是WCF地图最紧密的 DataContractSerializer, ,不 XmlSerializer)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top