XmlNodeReader::ReadElementContentAsBinHex Method (array<Byte>^, Int32, Int32)


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

Reads the element and decodes the BinHex content.

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

virtual int ReadElementContentAsBinHex(
	array<unsigned char>^ buffer,
	int index,
	int count
) override


Type: array<System::Byte>^

The buffer into which to copy the resulting text. This value cannot be null.

Type: System::Int32

The offset into the buffer where to start copying the result.

Type: System::Int32

The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.

Return Value

Type: System::Int32

The number of bytes written to the buffer.

Exception Condition

The buffer value is null.


The current node is not an element node.


The index into the buffer or index + count is larger than the allocated buffer size.


The element contains mixed content.


The content cannot be converted to the requested type.


In the .NET Framework 2.0, the recommended practice is to create XmlReader instances using the XmlReaderSettings class and the Create method. This allows you to take full advantage of all the new features introduced in the .NET Framework. For more information, see the Remarks section in the XmlReader reference page.

This method reads the element content, decodes it using BinHex encoding, and returns the decoded binary bytes (for example, an inline BinHex encoded GIF image) into the buffer.

This method can only read simple-content elements. The element can contain text, white space, significant white space, CDATA sections, comments and processing instructions. It can also contain entity references, which are automatically expanded. The element cannot have child elements.

This method is very similar to the ReadContentAsBinHex method except that it can only be called on element node types.

If the count value is higher than the number of bytes in the document, or if it is equal to the number of bytes in the document, the XmlNodeReader reads all the remaining bytes in the document and returns the number of bytes read. The next XmlNodeReader method call returns a zero and moves the reader to the node following the EndElement node.

If you call Read before all of the element content is consumed, the reader may behave as if the first content was consumed and then the Read method was called. This means that the reader reads all the text until the end element is encountered. It then reads the end tag node, read the next node, and then position itself on the next subsequent node.

See XmlReader::ReadElementContentAsBinHex to see an example using this method.

.NET Framework
Available since 2.0
Return to top