2013-12-17 64 views
1

我们的客户向我们发送了一个WSDL文件,用于他们的Web服务API。我们使用Visual Studio的“添加服务引用”来使用它。使用其他DataContract类,而不是生成的类

但是:我们只想生成服务代理,而不是数据合同类。我们想要重用已引用程序集中已有的类。

  • 如何指示“添加服务引用”不创建数据契约类?
  • ...或者如何指示WCF使用我们的引用程序集中的Data Contract类?
+0

怎么样的“重用类型”控制“高级”选项卡上? –

+0

生成服务合同+数据合同并复制粘贴所需内容,并从现有组件中替换您需要使用的任何内容。 –

回答

2

这归结为对高级...的“添加服务引用”部分以下选项:

enter image description here

这也映射到svcutil.exe/r//reference选项。

默认为启用,因此,如果它不能正常工作:有一个很好的机会,你的类型不完全匹配。以确保精确匹配的最简单的方法是从两个项目,或最坏情况相同cs文件(一个dll引用将是优选的,IMO)引用同一库DLL。数据协定命名空间和名称是这里通常的罪魁祸首,并且必须与完全匹配(必须是成员)。

1

为项目添加您的数据合同类(或者更好地为您创建一个新的数据合约类并在服务和客户端重用)到包括您的服务参考的项目。添加新服务引用或更新现有服务引用时,请选择“引用程序集中的重用类型”。

0

这是旧的,但我对这个疑问。 添加服务引用时,我可以访问类,这是确定 在Visual Studio中,加入“项目”引用同一个解决方案中的所有项目时,我看不到这些类。

有没有一种方法来测试客户端代码使用Visual Studio中的同一个解决方案中的所有项目?

感谢

相关问题