public PatternMessage(IBufferedMessageData messageData, MessageVersion messageVersion) { this.messageData = messageData; this.recycledMessageState = messageData.TakeMessageState(); if (this.recycledMessageState == null) { this.recycledMessageState = new System.ServiceModel.Channels.RecycledMessageState(); } this.properties = this.recycledMessageState.TakeProperties(); if (this.properties == null) { this.properties = new MessageProperties(); } this.headers = this.recycledMessageState.TakeHeaders(); if (this.headers == null) { this.headers = new MessageHeaders(messageVersion); } else { this.headers.Init(messageVersion); } XmlDictionaryReader messageReader = messageData.GetMessageReader(); messageReader.ReadStartElement(); ReceivedMessage.VerifyStartBody(messageReader, messageVersion.Envelope); base.ReadStartBody(messageReader); this.reader = messageReader; }
public override Message CreateMessage() { lock (ThisLock) { if (closed) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateBufferDisposedException()); } RecycledMessageState recycledMessageState = messageData.TakeMessageState(); if (recycledMessageState == null) { recycledMessageState = new RecycledMessageState(); } BufferedMessage bufferedMessage = new BufferedMessage(messageData, recycledMessageState, understoodHeaders, understoodHeadersModified); bufferedMessage.Properties.CopyProperties(properties); messageData.Open(); return(bufferedMessage); } }
public PatternMessageBuffer(IBufferedMessageData messageDataAtBody, MessageVersion messageVersion, KeyValuePair<string, object>[] properties, MessageHeaders headers) { _messageDataAtBody = messageDataAtBody; _messageDataAtBody.Open(); _recycledMessageState = _messageDataAtBody.TakeMessageState(); if (_recycledMessageState == null) { _recycledMessageState = new RecycledMessageState(); } _headers = _recycledMessageState.TakeHeaders(); if (_headers == null) { _headers = new MessageHeaders(messageVersion); } _headers.CopyHeadersFrom(headers); _properties = properties; _messageVersion = messageVersion; }
public PatternMessage(IBufferedMessageData messageData, MessageVersion messageVersion, KeyValuePair<string, object>[] properties, MessageHeaders headers) { _messageData = messageData; _messageData.Open(); _recycledMessageState = _messageData.TakeMessageState(); if (_recycledMessageState == null) { _recycledMessageState = new RecycledMessageState(); } _properties = _recycledMessageState.TakeProperties(); if (_properties == null) { _properties = new MessageProperties(); } if (properties != null) { _properties.CopyProperties(properties); } _headers = _recycledMessageState.TakeHeaders(); if (_headers == null) { _headers = new MessageHeaders(messageVersion); } if (headers != null) { _headers.CopyHeadersFrom(headers); } XmlDictionaryReader reader = messageData.GetMessageReader(); reader.ReadStartElement(); VerifyStartBody(reader, messageVersion.Envelope); ReadStartBody(reader); _reader = reader; }
public PatternMessage(IBufferedMessageData messageData, MessageVersion messageVersion) { _messageData = messageData; _recycledMessageState = messageData.TakeMessageState(); if (_recycledMessageState == null) { _recycledMessageState = new RecycledMessageState(); } _properties = _recycledMessageState.TakeProperties(); if (_properties == null) { _properties = new MessageProperties(); } _headers = _recycledMessageState.TakeHeaders(); if (_headers == null) { _headers = new MessageHeaders(messageVersion); } else { _headers.Init(messageVersion); } XmlDictionaryReader reader = messageData.GetMessageReader(); reader.ReadStartElement(); VerifyStartBody(reader, messageVersion.Envelope); ReadStartBody(reader); _reader = reader; }