WCF SOAPリクエストの名前空間プレフィックスを変更する方法はありますか?名前空間を変更するプレフィックスWCFエンベロープ
下の例のように、エンベロープには接頭辞「a」の名前空間「http://www.w3.org/2005/08/addressing」があります。私はこれを '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
すべての返信をありがとう。私はこれを達成することができると思う1つの方法は、IClientMessageInspector、IEndpointBehaviorをhttp://social.technet.microsoft.com/wiki/contents/articles/how-to-inspect-wcf-message-headers-using-iclientmessageinspector .aspx。イベントの1つはリクエストが送信される直前に発生します。その時点で、Row SOAPメッセージを取得して操作できます(問題ありません)。これが他人に役立つことを願っています。 – daehaai