Поделиться через


BodyWriter.CreateBufferedCopy(Int32) Метод

Определение

Создает буферизованную копию текста сообщения.

public:
 System::ServiceModel::Channels::BodyWriter ^ CreateBufferedCopy(int maxBufferSize);
public System.ServiceModel.Channels.BodyWriter CreateBufferedCopy (int maxBufferSize);
member this.CreateBufferedCopy : int -> System.ServiceModel.Channels.BodyWriter
Public Function CreateBufferedCopy (maxBufferSize As Integer) As BodyWriter

Параметры

maxBufferSize
Int32

Максимальный размер буфера для текста сообщения.

Возвращаемое значение

Объект BodyWriter, в котором содержится копия данного объекта.

Исключения

Значение параметра maxBufferSize меньше нуля.

Тело уже было записано, и повторная запись невозможна, либо модуль записи тела не поддерживает буферизацию.

Примеры

В следующем образце показано создание буферизованной копии существующего экземпляра BodyWriter.

string[] strings = { "Hello", "world" };
MyBodyWriter bodyWriter = new MyBodyWriter(strings);

StringBuilder strBuilder = new StringBuilder(10);
XmlWriter writer = XmlWriter.Create(strBuilder);
XmlDictionaryWriter dictionaryWriter = XmlDictionaryWriter.CreateDictionaryWriter(writer);

bodyWriter.WriteBodyContents(dictionaryWriter);
dictionaryWriter.Flush();

MyBodyWriter bufferedBodyWriter = (MyBodyWriter) bodyWriter.CreateBufferedCopy(1024);
Dim strings() As String = {"Hello", "world"}
Dim bodyWriter As New MyBodyWriter(strings)

Dim strBuilder As New StringBuilder(10)
Dim writer As XmlWriter = XmlWriter.Create(strBuilder)
Dim dictionaryWriter As XmlDictionaryWriter = XmlDictionaryWriter.CreateDictionaryWriter(writer)

bodyWriter.WriteBodyContents(dictionaryWriter)
dictionaryWriter.Flush()

Dim bufferedBodyWriter As MyBodyWriter = CType(bodyWriter.CreateBufferedCopy(1024), MyBodyWriter)

Комментарии

Если для параметра IsBuffered установлено значение true, возвращается объект BodyWriter. Если для параметра IsBuffered установлено значение false, возвращается содержимое объекта BodyWriter до значения maxBufferSize. При этом также вызывается метод OnCreateBufferedCopy(Int32), что обеспечивает возможность расширения.

Применяется к