2011-02-28 86 views
2

这是我的情景:WCF 4.0,.NET 2.0客户端和.NET类型

  • WCF 4.0服务
  • .NET 2.0客户端(即消费上述服务)

我需要,比方说,将一列NetworkInterfacesSystem.Net.NetworkInformation.NetworkInterfaces)从客户端传递到服务。 WCF服务的Web参考wcfReference已添加到客户端。

服务代码:

public void StoreNetworkInterfaces(System.Net.NetworkInterfaces[] nwInterfaces) 
{ 
... 
} 

客户端代码:

wcfService.StoreNetworkInterfaces(System.Net.NetworkInformation.NetworkInterfaces.GetAllNetworkInterfaces()); 

我越来越:

Argument 1: cannot convert from 'System.Net.NetworkInformation.NetworkInterface[]' to 'WindowsFormsApplication1.wcfReference.NetworkInterface[]'

同样的情况,对于其他类型(.NET和非。 NET类型)。我知道这是Web服务(interop)的期望行为,但我的WCF的范围仅适用于客户端安装程序。

在每次Web Reference更新后手动更改代理代码对于此项目来说绝对不是一个好选择。

任何帮助或方法的建议将不胜感激。

电贺

回答

2

一个Web引用(2.0型)不具有“再利用类型”选项,充满了WCF(3.0+)服务的参考支撑,如果您使用的工具,以便您将不得不接受线路上的代理类型,然后将它们(可能是AutoMapper)转换为域类型/从域类型转换。

请勿编辑参考文件;可能会随机再生。

+0

谢谢马克。从来没有听说过AutoMapper。我会看一看。无论如何...将XML序列化适合这种情况?再次感谢。 – HiseaSaw 2011-02-28 10:40:49

+0

@HiseaSaw与其他任何...一样合适,特别是在谈论2.0时。 – 2011-02-28 11:36:53