XmlWriter.WriteChars Method
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
When overridden in a derived class, writes text one buffer at a time.
Assembly: System.Xml (in System.Xml.dll)
Parameters
- buffer
- Type:
System.Char
[]
Character array containing the text to write.
- index
- Type: System.Int32
The position in the buffer indicating the start of the text to write.
- count
- Type: System.Int32
The number of characters to write.
| Exception | Condition |
|---|---|
| ArgumentNullException | buffer is null. |
| ArgumentOutOfRangeException | index or count is less than zero. -or- The buffer length minus index is less than count; the call results in surrogate pair characters being split or an invalid surrogate pair being written. |
| ArgumentException | The buffer parameter value is not valid. |
| IndexOutOfRangeException | index is outside the bounds of the buffer. |
This method can be used to write large amounts of text one buffer at a time.
Special handling must be done to ensure the WriteChars method does not split surrogate pair characters across multiple buffer writes. The XML specification defines the valid ranges for surrogate pairs.
An exception is thrown if surrogate pair characters are written that would result in the surrogate pair characters being split in the buffer.
StringBuilder output = new StringBuilder(); // Output to StringBuilder using (XmlWriter writer = XmlWriter.Create(output)) { writer.WriteStartDocument(); char[] ch = new char[4]; ch[0] = 't'; ch[1] = 'e'; ch[2] = 'x'; ch[3] = 't'; writer.WriteStartElement("WriteCharacters"); writer.WriteChars(ch, 0, ch.Length); writer.WriteEndElement(); writer.WriteEndDocument(); } OutputTextBlock.Text = output.ToString();