internal static Message CreateCloseSequenceResponse(MessageVersion messageVersion, UniqueId messageId, UniqueId inputId) { CloseSequenceResponse body = new CloseSequenceResponse(inputId); Message message = Message.CreateMessage(messageVersion, WsrmIndex.GetCloseSequenceResponseActionHeader(messageVersion.Addressing), body); message.Headers.RelatesTo = messageId; return(message); }
public static CloseSequenceResponseInfo ReadMessage(MessageVersion messageVersion, Message message, MessageHeaders headers) { CloseSequenceResponseInfo info; if (headers.RelatesTo == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageHeaderException(System.ServiceModel.SR.GetString("MissingRelatesToOnWsrmResponseReason", new object[] { DXD.Wsrm11Dictionary.CloseSequenceResponse }), messageVersion.Addressing.Namespace, "RelatesTo", false)); } if (message.IsEmpty) { string str = System.ServiceModel.SR.GetString("NonEmptyWsrmMessageIsEmpty", new object[] { "http://docs.oasis-open.org/ws-rx/wsrm/200702/CloseSequenceResponse" }); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new XmlException(str)); } using (XmlDictionaryReader reader = message.GetReaderAtBodyContents()) { info = CloseSequenceResponse.Create(reader); message.ReadFromBodyContentsToEnd(reader); } info.relatesTo = headers.RelatesTo; return(info); }