IFragmentCapableXmlDictionaryWriter::WriteFragment Method (array<Byte>^, Int32, Int32)

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Writes an XML fragment to the underlying stream of the writer.

Namespace:   System.Xml
Assembly:  System.Runtime.Serialization (in System.Runtime.Serialization.dll)

void WriteFragment(
	array<unsigned char>^ buffer,
	int offset,
	int count
)

Parameters

buffer
Type: array<System::Byte>^

The buffer to write to.

offset
Type: System::Int32

The starting position from which to write in buffer.

count
Type: System::Int32

The number of bytes to be written to the buffer.

Writes a fragment captured between StartFragment and EndFragment and calls back into the XmlDictionaryWriter's main stream. The fragment written is count bytes starting at the index offset from the supplied buffer. The behavior is undefined if the supplied fragment was not captured using this writer instance.

MemoryStream stream = new MemoryStream();
MemoryStream fragmentStream = new MemoryStream();
XmlDictionaryWriter writer = XmlDictionaryWriter.CreateTextWriter(stream);
IXmlFragmentCapableXmlDictionaryWriter fragmentWriter = writer as IXmlFragmentCapableXmlDictionaryWriter;
if (fragmentWriter == null || !fragmentWriter.CanFragment)
{
Console.WriteLine("This writer doesn't support fragments");
return;
}
writer.WriteStartElement("Root");
fragmentWriter.StartFragment(fragmentStream, false);
writer.WriteStartElement("Body");
writer.WriteString("This is my body");
writer.WriteEndElement();
fragmentWriter.EndFragment();
writer.WriteStartElement("CharsInTheBody");
writer.WriteValue(fragmentStream.Length);
writer.WriteEndElement();
fragmentWriter.WriteFragment(fragmentStream.GetBuffer(), 0, (int)fragmentStream.Length);
writer.WriteEndElement(); // Root

.NET Framework
Available since 3.0
Return to top
Show: