在WCF中自定义SOAP Header名称空间前缀

我写过关于在wcf生成的SOAP消息中自定义名称空间和名称空间前缀的方法。

但是,我找不到在Message类中重写的正确方法,以便自定义消息的SOAP标头。

我想发这个消息:

   IFD_1.4      

看起来像这样:

    IFD_1.4      

区别在于第一个标题的名称空间是“if”而不是“f”。

有没有办法使用自定义MessageFormatter与自定义Message类?

我找到的解决方案是从MessageHeader类派生并在我的自定义Message类中使用它(请参阅问题链接以查看我如何使用自定义Message类来自定义信封和正文开始标记)。

一旦准备好,我将用完整的例子更新答案。

如果您有不同的解决方案,请将其发布为更简单的答案,这将有效,而不会破坏wcf的function将被选中。

您可以使用自定义MessageEncoder,在ReadMessage和WriteMessage方法中,您可以使用xml执行任何操作。