C# 使用生成的DataContract类以外的其他DataContract类

C# 使用生成的DataContract类以外的其他DataContract类,c#,wcf,datacontract,C#,Wcf,Datacontract,我们的客户为他们的web服务API向我们发送了一个WSDL文件。我们使用VisualStudio的Add Service引用来使用它 但是:我们只想生成一个服务代理,而不是数据契约类。我们希望重用引用程序集中已有的类 如何指示AddServiceReference不创建数据协定类? …或者如何指示WCF使用引用程序集中的数据协定类? 添加您的数据契约类,或者更好地为您的数据契约类创建一个新库,并在服务端和客户端对项目(包括您的服务引用)进行重用。添加新服务引用或更新现有服务引用时,请在引用的程序

我们的客户为他们的web服务API向我们发送了一个WSDL文件。我们使用VisualStudio的Add Service引用来使用它

但是:我们只想生成一个服务代理,而不是数据契约类。我们希望重用引用程序集中已有的类

如何指示AddServiceReference不创建数据协定类? …或者如何指示WCF使用引用程序集中的数据协定类?
添加您的数据契约类,或者更好地为您的数据契约类创建一个新库,并在服务端和客户端对项目(包括您的服务引用)进行重用。添加新服务引用或更新现有服务引用时,请在引用的程序集中选择“重用类型”。

这取决于“高级”菜单上的以下选项。。。添加服务参考的一部分:

它还映射到svcutil.exe中的/r//reference选项


这默认为enabled,因此如果它不起作用:很可能您的类型不完全匹配。确保精确匹配的最简单方法是从两个项目中引用相同的库dll,或者在最坏的情况下引用相同的.cs文件。在我看来,dll引用更可取。数据契约名称空间和名称是这里常见的罪魁祸首,并且必须与成员完全匹配。

这是旧的,但我对此有一个疑问。 我可以在添加服务引用时访问类,这很好 在VisualStudio中处理同一解决方案中的所有项目并添加项目引用时,我看不到这些类

在VisualStudio中,有没有一种方法可以使用同一解决方案中的所有项目来测试客户端代码


谢谢

关于“高级”选项卡上的“重用类型”控件如何?生成服务契约+数据契约并复制粘贴所需内容,并替换现有程序集中需要使用的任何内容。。