2011-06-14 5 views
2

일부 SOAP 헤더를 WCF 서비스에 보내고 동작 확장을 사용하여 해당 메시지를 잡으려고합니다. 메시지가 수신되면 헤더 컬렉션을 진행합니다.MessageHeaderInfo에서 값을 얻는 방법

각 헤더는 value 속성이없는 MessageHeaderInfo 유형입니다. 어떻게 값을 추출 할 수 있습니까? 추한 파싱 (값 주위의 xml 요소를 제거하기 위해)을 수행 할 수 있지만 절름발이입니다.

귀하의 도움이 가장 적합합니다!

답변

4

일반적으로 메시지 머리글을 사용하는 방법은 머리글을 나타내는 DataContract (또는 XmlSerializable 클래스)를 정의한 다음 Message.Headers.GetHeader<T>()을 사용하여 검색합니다. 이 메서드는 deserialization을 수행하고 사용할 수있는 강력한 형식의 개체를 전달합니다.

+0

정말 작동합니다. 또 다른 문제가 있습니다. 요청 순서에 따라 헤더를 보내는 경우 일부는 제대로 deserialize되지 않으며 null 값을 얻습니다. 거기에 어떤 해결책이 있습니까? 나는 그 명령이 고쳐지 길 원치 않는다. – Alon1980

+0

자세한 내용을 보려면 별도의 질문을하고 싶을 것입니다. 전에는 못 봤어 ... – tomasr