2011-06-14 103 views
2

我正在向WCF服务发送一些SOAP标头,并试图使用行为扩展来捕获它们。 收到消息时,我正在浏览它的头文件集合。如何从MessageHeaderInfo获取值

每个头都是MessageHeaderInfo类型,它没有value属性。 如何提取值?它可以用一个丑陋的解析来完成(去除值的xml元素),但它感觉跛脚。

你的帮助是最appriciated!

回答

4

通常使用消息头的方式是定义一个DataContract(或一个XmlSerializable类)来表示头,然后使用Message.Headers.GetHeader<T>()来检索它。该方法将执行反序列化并为您提供您可以使用的强类型对象。

+0

它确实有效。我有另一个问题 - 看来,如果我在请求中以不同的顺序发送标题,其中一些没有正确的反序列化,我得到空值。有没有解决方案?我不希望订单将被修复。 – Alon1980 2011-06-15 06:06:12

+0

我想你可能想为此更详细地提出一个单独的问题。我以前绝对没有见过... – tomasr 2011-06-15 12:41:57