假設我有一個WCF服務,它使用名爲「http://mynamespace.com/myservice」的所有消息(在SOAP XML中)。獲取WCF服務的名稱空間
我在Visual Studio中向此服務添加服務引用並開始使用它。
現在我想以某種方式獲得客戶端上的代碼的名稱空間(字符串),但我不知道如何。可能嗎?
(希望你明白我的意思,我是新來的WCF和真的不知道正確的術語)
假設我有一個WCF服務,它使用名爲「http://mynamespace.com/myservice」的所有消息(在SOAP XML中)。獲取WCF服務的名稱空間
我在Visual Studio中向此服務添加服務引用並開始使用它。
現在我想以某種方式獲得客戶端上的代碼的名稱空間(字符串),但我不知道如何。可能嗎?
(希望你明白我的意思,我是新來的WCF和真的不知道正確的術語)
如果你想簡單地找到任何SOAP服務,您可以只檢查的命名空間WSDL並查看wsdl:definitions元素。該服務的名稱空間將在targetNamespace屬性中找到。您總是可以通過瀏覽到http://server/service.svc?wsdl
另請注意,您的服務合同和數據合同也具有名稱空間。服務操作名稱空間成爲您的Soap Action,數據協定命名空間可以識別您的類型。
從客戶端角度來看,您始終可以查看生成的綁定信息。端點配置元素應該自動公開一個bindingNamespace屬性,它是服務的命名空間。
如果您使用WCF測試客戶端工具,則可以查看生成的配置文件以更好地瞭解您的服務。
抱歉,我不清楚我的問題。我想使用代碼來獲取名稱空間。我已經編輯了我的問題來澄清這一點。 – haagel
噢,在這種情況下,我認爲你只能詢問爲你生成的代理類。假設您命名了服務引用MyService,並且爲您創建了一個MyServiceClient對象。您可以執行類似MyServiceClient.Endpoint的操作,並查看與您的服務端點關聯的所有屬性。 http://msdn.microsoft.com/en-us/library/system.servicemodel.description.serviceendpoint.aspx – syneptody
我的問題的答案是在上面syneptody的評論。命名空間是使用以下代碼找到的:「string ns = new MyServiceClient()。Endpoint.Contract.Namespace;」 – haagel
你想獲得那個命名空間?在客戶端,服務器還是外部? –
@Darin Dimitrov:在客戶端(我已經編輯了這個問題來澄清這個問題)。 – haagel