我在使用WCF中的命名空間時遇到問題。我從來沒有這樣做過。我已經嘗試了很多在google上找到解決方案。但我仍然無法找到解決方案。從WSDL中刪除額外的WCF命名空間
我已經寫了這是在3個項目分成,另外我創建了一個模型項目WCF服務:
- 合同(的ServiceContract)
- 服務(代碼隱藏)
- 主機(ServiceHost的)
- Models(DataContract classes)
當我在IIS中託管服務時,它正在生成WSDL不錯,但還有許多事情沒有下文定義的命名空間:
http://schemas.microsoft.com/2003/10/Serialization/
http://schemas.datacontract.org/2004/07/My.Models
的問題是,我想訪問只通過同一個命名空間我所有的服務合同和數據的合同。
因爲當在代理類中生成DataContract
類時,它將被複制。意思是說,如果我的Models
項目中有ClassA
類別,那麼它會給我2班,分別爲ClassA
和ClassA1
。
我看到在代理類中,它們存在於不同的命名空間中。所以,我想避免這種情況。
我也想避免ChannelFactory
方法,因爲有很多OperationContract
函數。所以,不想用手編寫這些代碼,但希望它能以正確的方式自動生成。
任何幫助,非常感謝。提前致謝。
我不明白你對'ChannelFactory'方法的意思,並有很多手工編碼。 'ChannelFactory'將爲您生成代理 - 在創建工廠之外沒有任何東西需要手工編寫,並從中獲取通道。 – Tim
是的 - 您的服務器端服務對象和客戶端代理生成的對象的名稱空間通常*是*不同的 - **除非您知道您控制服務調用的兩端(服務器+客戶端) ,並且您可以將數據合約放入由服務器和客戶端引用的*獨立程序集*中。在這種情況下,數據合約程序集中的數據類只存在一次**。 –
您是否爲您的合同/服務定義了名稱空間? –