2008-10-06 64 views
3

我正在開發一個項目,其中有2個需要相同實體的Web服務。這兩個Web服務位於同一臺服務器上,因此在後端,它們共享相同的類。跨兩個Web服務共享一個實體?

在前端方面,我的代碼使用兩個 Web服務,並將兩個服務的實體看作是分開的(在不同的名稱空間中),因此我無法在兩個服務中使用實體。

有誰知道一種方法來允許它在.NET 2.0中工作?

[XmlType(TypeName = "Class1", Namespace = "myNamespace")] 
public class Class1 
{ 
    public int field; 
} 

希望我的IDE會以某種方式「知道」的類是在兩個網絡服務一樣的,所以它不會創建兩個獨立的實體:

我已經與我的實體做到了這一點類,但沒有運氣。

這可能與.NET 2.0 Web服務有關嗎?

回答

4

我認爲你不能這樣做,從內VS但你可以手動使用wsdl.exe工具是這樣的:

wsdl.exe /sharetypes http://localhost/MyService1.asmx?wsdl http://localhost/MyService2.asmx?wsdl 

通知的/sharetypes選項,打開類型共享功能。此功能爲不同服務之間共享的相同類型(命名空間,名稱和連線簽名必須相同)創建一個具有單一類型定義的代碼文件。

更多信息:

1

我不確定使用.NET 2.0的實現細節,但我相信你想要做的是將公共類放在一個單獨的XSD文件中,並從你的兩個WSDL中引用它。這樣,常見類型在兩個服務之間具有相同的名稱空間。

現在,你是怎麼做到這一點的.NET 2.0我不能給你具體...

0

可以檢查實體的命名空間?確保這兩個Web服務都是相同的。