您可以使用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作爲地址。
旁註:你可能要單獨問的第二個問題。 –