Freigeben über


XmlReader.ReadElementContentAsBinHex Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Reads the element and decodes the BinHex content.

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

Syntax

'Declaration
Public Overridable Function ReadElementContentAsBinHex ( _
    buffer As Byte(), _
    index As Integer, _
    count As Integer _
) As Integer
public virtual int ReadElementContentAsBinHex(
    byte[] buffer,
    int index,
    int count
)

Parameters

  • buffer
    Type: array<System.Byte[]
    The buffer into which to copy the resulting text. This value cannot be nulla null reference (Nothing in Visual Basic).
  • index
    Type: System.Int32
    The offset into the buffer where to start copying the result.
  • count
    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.

Exceptions

Exception Condition
ArgumentNullException

The buffer value is nulla null reference (Nothing in Visual Basic).

InvalidOperationException

The current node is not an element node.

ArgumentOutOfRangeException

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

NotSupportedException

The XmlReader implementation does not support this method.

XmlException

The element contains mixed-content.

FormatException

The content cannot be converted to the requested type.

Remarks

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 XmlReader reads all the remaining bytes in the document and returns the number of bytes read. The next XmlReader method call returns a zero and moves the reader to the node following the EndElement.

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 will read all the text until the end element is encountered. It will then read the end tag node, read the next node, and then position itself on the next subsequent node.

NoteNote:

The item delimiter for arrays is a single space. When deserializing arrays of type string, object, byte[], and Uri, the resulting array will contain an empty string value for any sequence of two delimiters (spaces) between non-empty values. For example, "a b", with two spaces, is deserialized as ["a", "", "b"]. This is different from other .NET Framework behavior and from all the other array types in which the empty values are ignored.

You can use the following work-around to remove empty spaces:

1. Get the content as one big string instead of a string array from ReadContentAsString.

2. Use the System.String.Split method with StringSplitOptions.RemoveEmptyEntities to convert the big string into a string array.

3. Work with the resulting string array or convert each item further, for example, to Uri.

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.