Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
WriteChars Method

XmlWriter.WriteChars Method

When overridden in a derived class, writes text one buffer at a time.

Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)

public abstract void WriteChars (
	char[] buffer,
	int index,
	int count
)
public abstract void WriteChars (
	char[] buffer, 
	int index, 
	int count
)
public abstract function WriteChars (
	buffer : char[], 
	index : int, 
	count : int
)
Not applicable.

Parameters

buffer

Character array containing the text to write.

index

The position in the buffer indicating the start of the text to write.

count

The number of characters to write.

Exception typeCondition

ArgumentNullException

buffer is a null reference (Nothing in Visual Basic).

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.

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. This exception must be caught in order to continue writing the next surrogate pair character to the output buffer.

In the following example a randomly generated surrogate pair character is split when writing to the output buffer. Catching the exception and continuing to write to the buffer ensures that the surrogate pair character is written correctly to the output stream.

 //Handling surrogate pair across buffer streams.
 char [] charArray = new char[4];
 char lowChar, highChar;
 Random random = new Random();
 lowChar = Convert.ToChar(random.Next(0xDC01, 0xDFFF));
 highChar = Convert.ToChar(random.Next(0xD801, 0xDBFF));
 XmlTextWriter tw = new XmlTextWriter("test.xml", null);
 tw.WriteStartElement("Root");
 charArray[0] = 'a';
 charArray[1] = 'b';
 charArray[2] = 'c';
 charArray[3] = highChar;
 try
 {
  tw. WriteChars(charArray, 0, charArray.Length);
 }
 catch (Exception ex) {
 }
 Array[0] = highChar;
 Array[1] = lowChar;
 charArray[2] = 'd';
 tw.WriteChars(charArray, 0, 3); 
 tw.WriteEndElement();

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

XNA Framework

Supported in: 1.0

Community Additions

ADD
Show:
© 2015 Microsoft