如何使用MessageHeader.CreateHeader()方法向WCF邮件头添加属性?

Tan*_*ble 5 wcf wcf-client

我正在使用以下代码添加WCF自定义标头

 MessageHeader header = MessageHeader.CreateHeader("Key", "ns", "Value");
 OperationContext.Current.OutgoingMessageHeaders.Add(header);
Run Code Online (Sandbox Code Playgroud)

有了这个,我也想补充一下

    xmlns:wsa="http://www.w3.org/2005/08/addressing"
   wsa:IsReferenceParameter="1"
Run Code Online (Sandbox Code Playgroud)

作为此Message标头的属性.

有没有办法将上面的命名空间和属性添加到邮件头?

Tan*_*ble 7

我找到了解决方案 我们必须实现从MessageHeader类中隐藏的custome头.

MessageHeader类确实有方法OnWriteStartHeader().我们可以在此方法中添加xml命名空间.

此外,我们必须重写OnWriteHeaderContents()方法并将我们想要的xml或值写为MessageHeader.

一旦准备就绪,同时在request.Header.Add()中添加消息头,传递自定义头类的对象.

请参阅以下链接更多详情.

http://www.netframeworkdev.com/windows-communication-foundation/messageheader-serializer-how-to-use-attributes-52827.shtml

http://social.msdn.microsoft.com/forums/en-US/wcf/thread/c2a39df8-3943-4c41-acca-6da8e96f0dff