我想知道是否有更改WCF SOAP請求的名稱空間前綴?更改名稱空間前綴WCF信封
正如您在下面的示例中看到的,The Envelope具有名稱空間「http://www.w3.org/2005/08/addressing」,前綴爲「a」。我想把它改成'foo'。我怎樣才能做到這一點。 注意我沒有控制服務代碼,我只能從WSDL創建代理類。
<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<a:Action s:mustUnderstand="1">http://www.starstandards.org/webservices/2005/10/transport/operations/MyAction</a:Action>
<h:payloadManifest xmlns="http://www.starstandards.org/webservices/2005/10/transport" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="http://www.starstandards.org/webservices/2005/10/transport">
<manifest contentID="Content0" namespaceURI="http://www.starstandard.org/STAR/5" element="TESTMETHOD" version="5.2.4"></manifest>
</h:payloadManifest>
<h:Identity xmlns="urn:xxx/xxx/" xmlns:h="urn:xxx/xxx">
<SiteCode>XXXXXX</SiteCode>
</h:Identity>
<a:To>urn:xxx/xxx/Method1</a:To>
<MessageID xmlns="http://www.w3.org/2005/08/addressing">XXXXX</MessageID>
<a:ReplyTo>
<a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
</a:ReplyTo>
</s:Header>
你爲什麼想改變前綴?對於正確理解XML的任何東西都不應有任何區別。 –
我知道只是改變前綴應該沒有什麼區別,但是我將要使用的服務,我無法控制它並且不知道它如何處理SOAP請求。目前我正在收到服務器錯誤消息與一個很好的期望前綴的元素有關。它的消除過程。 thx – daehaai
感謝所有的答覆。我認爲這可以實現的一種方式是使用IClientMessageInspector,IEndpointBehavior,如圖所示http://social.technet.microsoft.com/wiki/contents/articles/how-to-inspect-wcf-message-headers-using-iclientmessageinspector的.aspx。在請求發送之前,其中一個事件被觸發。此時,您可以獲得行SOAP消息並進行操作(概率不可取)。希望這有助於其他人。 – daehaai