protected override MessageBuffer OnCreateBufferedCopy(int maxBufferSize) { BodyWriter bufferedBodyWriter; if (BodyWriter.IsBuffered) { bufferedBodyWriter = BodyWriter; } else { bufferedBodyWriter = BodyWriter.CreateBufferedCopy(maxBufferSize); } KeyValuePair <string, object>[] properties = new KeyValuePair <string, object> [base.Properties.Count]; ((ICollection <KeyValuePair <string, object> >)base.Properties).CopyTo(properties, 0); return(new OperationFormatterMessageBuffer(base.Headers, properties, bufferedBodyWriter)); }