/// <summary> /// Constructs a <see cref="PoxBinaryBufferedMessage"/>. /// </summary> /// <param name="data">The message data containing the message contents.</param> internal PoxBinaryBufferedMessage(PoxBinaryBufferedMessageData data) { this._data = data; #if !SILVERLIGHT this._data.Open(); #endif this._headers = new MessageHeaders(data.Encoder.MessageVersion); this._properties = new MessageProperties(); this._reader = this._data.TakeReader(); this._isFault = this._reader.IsStartElement(PoxBinaryMessageEncoder.Fault, PoxBinaryMessageEncoder.Namespace); }
/// <summary> /// Constructs a <see cref="PoxBinaryBufferedMessageBuffer"/> /// </summary> /// <param name="data">The message data.</param> /// <param name="headers">The message headers.</param> /// <param name="properties">The message properties.</param> internal PoxBinaryBufferedMessageBuffer(PoxBinaryBufferedMessageData data, MessageHeaders headers, MessageProperties properties) { this._data = data; #if !SILVERLIGHT this._data.Open(); #endif this._headers = new MessageHeaders(headers); this._properties = new MessageProperties(properties); this.ThisLock = new object(); }
public override Message ReadMessage(ArraySegment <byte> buffer, BufferManager bufferManager, string contentType) { if (bufferManager == null) { throw new ArgumentNullException("bufferManager"); } ThrowIfIncorrectContentType(contentType); #if !SILVERLIGHT PoxBinaryBufferedMessageData data = new PoxBinaryBufferedMessageData(buffer, bufferManager, this); #else PoxBinaryBufferedMessageData data = new PoxBinaryBufferedMessageData(buffer, this); #endif return(new PoxBinaryBufferedMessage(data)); }