internal static Message CreateCreateSequenceResponse(MessageVersion messageVersion, ReliableMessagingVersion reliableMessagingVersion, bool duplex, CreateSequenceInfo createSequenceInfo, bool ordered, UniqueId inputId, EndpointAddress acceptAcksTo) { CreateSequenceResponse body = new CreateSequenceResponse(messageVersion.Addressing, reliableMessagingVersion) { Identifier = inputId, Expires = createSequenceInfo.Expires, Ordered = ordered }; if (duplex) { body.AcceptAcksTo = acceptAcksTo; } return(Message.CreateMessage(messageVersion, ActionHeader.Create(WsrmIndex.GetCreateSequenceResponseAction(reliableMessagingVersion), messageVersion.Addressing), body)); }
public static CreateSequenceResponseInfo ReadMessage(MessageVersion messageVersion, ReliableMessagingVersion reliableMessagingVersion, Message message, MessageHeaders headers) { CreateSequenceResponseInfo info; if (message.IsEmpty) { string str = System.ServiceModel.SR.GetString("NonEmptyWsrmMessageIsEmpty", new object[] { WsrmIndex.GetCreateSequenceResponseActionString(reliableMessagingVersion) }); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new XmlException(str)); } if (headers.RelatesTo == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageHeaderException(System.ServiceModel.SR.GetString("MissingRelatesToOnWsrmResponseReason", new object[] { XD.WsrmFeb2005Dictionary.CreateSequenceResponse }), messageVersion.Addressing.Namespace, "RelatesTo", false)); } using (XmlDictionaryReader reader = message.GetReaderAtBodyContents()) { info = CreateSequenceResponse.Create(messageVersion.Addressing, reliableMessagingVersion, reader); message.ReadFromBodyContentsToEnd(reader); } info.RelatesTo = headers.RelatesTo; return(info); }