从其他服务引用重用现有类

时间:2013-02-19 13:54:03

标签: c# .net web-services service-reference

我正在处理的情况不是最理想的,所以请耐心等待。

我们要使用外部(非.NET) SOAP-webservices
出于某种原因,每个方法单独的Web服务中实现,并且具有自己的WSDL 。 Web服务返回的许多对象具有完全相同的设计,名称和xml命名空间

使用

添加服务参考”是因为:
- 内部开发团队习惯了它 - 我们想保留自动“更新服务参考”

第二个参考添加了“所有参考组件中的重用类型”选项 所有类都会在新引用下重新生成

重新 类来自第一个参考 的方法

1 个答案:

答案 0 :(得分:19)

如果打开服务引用的Reference.svcmap(要查找它,检查“显示所有文件”并展开服务引用)并手动编辑它,而不是通过GUI设置WSDL URI,则可以添加多个WSDL。 E.g。

  <MetadataSources>
    <MetadataSource Address="http://localhost/example1.wsdl" Protocol="http" SourceId="1" />
    <MetadataSource Address="http://localhost/example2.wsdl" Protocol="http" SourceId="2" />
  </MetadataSources>

当您在一个服务引用中有多个WSDL时,只要它们在不同的WSDL中相同,就会在您描述时重用这些类。如果存在具有相同名称但定义不同的类,则其中一个类的名称后面会附加一个“1”后缀。