ReadElementContentAsObject Method

XmlReader.ReadElementContentAsObject Method ()


Reads the current element and returns the contents as an Object.

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

public virtual object ReadElementContentAsObject()

Return Value

Type: System.Object

A boxed common language runtime (CLR) object of the most appropriate type. The ValueType property determines the appropriate CLR type. If the content is typed as a list type, this method returns an array of boxed objects of the appropriate type.

Exception Condition

The XmlReader is not positioned on an element.


The current element contains child elements.


The element content cannot be converted to the requested type


The method is called with null arguments.


An XmlReader method was called before a previous asynchronous operation finished. In this case, InvalidOperationException is thrown with the message “An asynchronous operation is already in progress.”

This method reads the start tag, the contents of the element, and moves the reader past the end element tag. It expands entities and ignores processing instructions and comments. The element can only contain simple content. That is, it cannot have child elements.

For more information, see the Remarks section of the XmlReader reference page and the W3C XML Schema Part 2: Datatypes recommendation.

For the asynchronous version of this method, see ReadElementContentAsObjectAsync.

The following example uses the method to read the content of the price node. The reader uses the information in the schema to map the content to the correct data type.

// Create a validating reader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add("urn:items", "item.xsd");	
 XmlReader reader = XmlReader.Create("item.xml", settings); 

// Get the CLR type of the price element. 

// Return the value of the price element as Decimal object.
Decimal price = (Decimal) reader.ReadElementContentAsObject();

// Add 2.50 to the price.
price = Decimal.Add(price, 2.50m);

The example uses the following two files as input.



Universal Windows Platform
Available since 4.5
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
© 2015 Microsoft