服务引用复杂类型

nat*_*nat 3 c# service wcf reference

我有一个客户端应用程序正在使用WCF服务,该服务正在接受并返回一些复杂的类型参数.这些复杂类型保存在客户端应用程序和WCF服务都引用的单独程序集中.问题是当我在客户端应用程序中添加服务引用时,生成的引用类构建自己的复杂参数类型版本因此我无法传递原始类型定义的程序集中的类型.不确定这是否完全可以理解..

问题是..我是否必须编写某种反射深度复制例程来有效地从原始类型构建服务引用生成的类?还是有更好的选择

任何帮助,一如既往地非常愉快地收到

NAT

Mat*_*ott 7

当您向代码添加服务引用时,选择Advanced并且您将看到一个选项Reuse types in referenced assemblies.如果确保已选中,并且引用已添加到项目中,则WCF将不会生成代理类型并使用引用的类型.

如果已添加服务引用,请首先引用共享类型,然后右键单击"服务引用",并选择Configure Service Reference使用引用的类型重新生成客户端代码.


Kie*_*one 5

不,你可以这样做:在这里看我的问题:

WCF服务参考生成自己的合同接口,不会重用我的

您可以拥有一个包含接口,类型的共享程序集,服务和客户端都可以引用它:)

'重用引用类型..'选项确实涵盖了复杂类型,但上面的答案还包括重用接口类型,IMO是更好的选择,而不是VS选项所涵盖.