您可以使用WDSL.exe生成代理,而不是Visual Studio。 WSDL.EXE具有命令行开关共享类型:
/shareTypes 打开的类型共享功能。此功能为 不同服务(名称空间,名称和连线签名必须为 相同)之间共享的相同类型创建一个代码文件 ,并具有单一类型定义。以“http://”URL作为命令行 参数引用服务或为本地文件创建discomap文档。当使用 /参数选项时,该值是该元素,并且是 ,无论是true还是false。
http://msdn.microsoft.com/en-us/library/7h3ystb6(vs.80).aspx
您可以从Visual Studio命令提示符访问WSDL.EXE。一个例子命令如下所示:
wsdl.exe /sharetypes http://service1.com http://service2.com
更新
如果你希望能够使用Visual Studio跨Web服务共享类型和“添加服务引用”的方法,你可以这样做与一个.disco文件。首先,您需要创建一个.disco文件,其中列出了您希望包含的所有WSDL文件的位置。这里有一个例子:
<discovery xmlns="http://schemas.xmlsoap.org/disco/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<contractRef xmlns="http://schemas.xmlsoap.org/disco/scl/" ref="http://<url to wsdl1>"/>
<contractRef xmlns="http://schemas.xmlsoap.org/disco/scl/" ref="http://<url to wsdl2>"/>
</discovery>
接下来,在Visual Studio中添加服务引用对话框,你可以把路径刚刚创建前缀为“文件://”的.disco文件。因此,如果文件名为service.disco保存在c:\ temp中,则可以使用file:// c:\ temp \ service.disco作为地址。
旁注:你可能要单独问的第二个问题。 –