public override bool IsEmpty {
get {
- if (!body_started)
- ReadBodyStart ();
+ ReadBodyStart ();
return is_empty;
}
}
public override bool IsFault {
get {
- if (!body_started)
- ReadBodyStart ();
+ ReadBodyStart ();
return is_fault;
}
}
get { return version; }
}
+ protected override MessageBuffer OnCreateBufferedCopy (
+ int maxBufferSize)
+ {
+ ReadBodyStart ();
+ var headers = new MessageHeaders (Headers);
+ var props = new MessageProperties (Properties);
+ return new DefaultMessageBuffer (maxBufferSize, headers, props, new XmlReaderBodyWriter (reader), IsFault);
+ }
+
protected override string OnGetBodyAttribute (
string localName, string ns)
{
return reader; // silly, but that's what our test expects.
if (body_consumed)
throw new InvalidOperationException ("The message body XmlReader is already consumed.");
- if (!body_started)
- ReadBodyStart ();
+ ReadBodyStart ();
if (is_empty)
throw new InvalidOperationException ("The message body is empty.");
body_consumed = true;
void ReadBodyStart ()
{
+ if (body_started)
+ return;
+
// read headers in advance.
if (headers == null)
ReadHeaders ();
{
var headers = new MessageHeaders (Headers);
var props = new MessageProperties (Properties);
- return new DefaultMessageBuffer (maxBufferSize, headers, props, body.CreateBufferedCopy (maxBufferSize), false);
+ return new DefaultMessageBuffer (maxBufferSize, headers, props, body.CreateBufferedCopy (maxBufferSize), IsFault);
}
}
}