Freigeben über


XmlReader.ReadContentAs(Type, IXmlNamespaceResolver) Methode

Definition

Liest den Inhalt als Objekt des angegebenen Typs.

public:
 virtual System::Object ^ ReadContentAs(Type ^ returnType, System::Xml::IXmlNamespaceResolver ^ namespaceResolver);
public virtual object ReadContentAs(Type returnType, System.Xml.IXmlNamespaceResolver namespaceResolver);
public virtual object ReadContentAs(Type returnType, System.Xml.IXmlNamespaceResolver? namespaceResolver);
abstract member ReadContentAs : Type * System.Xml.IXmlNamespaceResolver -> obj
override this.ReadContentAs : Type * System.Xml.IXmlNamespaceResolver -> obj
Public Overridable Function ReadContentAs (returnType As Type, namespaceResolver As IXmlNamespaceResolver) As Object

Parameter

returnType
Type

Der Typ des zurückzugebenden Werts.

Hinweis Mit der Version von .NET Framework 3.5 kann der Wert des returnType Parameters nun der DateTimeOffset Typ sein.

namespaceResolver
IXmlNamespaceResolver

Ein IXmlNamespaceResolver Objekt, das zum Auflösen aller Namespacepräfixe im Zusammenhang mit der Typkonvertierung verwendet wird. Dies kann z. B. beim Konvertieren eines XmlQualifiedName Objekts in ein xs:string.

Dieser Wert kann null sein.

Gibt zurück

Der verkettete Textinhalt oder Attributwert, der in den angeforderten Typ konvertiert wurde.

Ausnahmen

Der Inhalt weist nicht das richtige Format für den Zieltyp auf.

Die versuchte Umwandlung ist ungültig.

Der wert returnType ist null.

Der aktuelle Knoten ist kein unterstützter Knotentyp. Weitere Informationen finden Sie in der folgenden Tabelle.

- oder -

Eine XmlReader Methode wurde aufgerufen, bevor ein vorheriger asynchroner Vorgang abgeschlossen wurde. In diesem Fall InvalidOperationException wird die Meldung "Ein asynchroner Vorgang wird bereits ausgeführt" ausgelöst.

Lesen Decimal.MaxValue.

Beispiele

Im folgenden Beispiel wird die ReadContentAs Methode verwendet, um den Inhalt des Colors-Elements in ein Array von Zeichenfolgenobjekten zurückzugeben.

using (XmlReader reader = XmlReader.Create("dataFile_2.xml")) {
      reader.ReadToDescendant("item");

      reader.MoveToAttribute("colors");
      string[] colors = (string[]) reader.ReadContentAs(typeof(string[]),null);
      foreach (string color in colors) {
         Console.WriteLine("Colors: {0}", color);
      }             		
}
Using reader As XmlReader = XmlReader.Create("dataFile_2.xml")

  reader.ReadToDescendant("item")
              
  reader.MoveToAttribute("colors")
  Dim colors As String() = CType(reader.ReadContentAs(GetType(String()), Nothing), String())
  Dim color As String
  For Each color In  colors
    Console.WriteLine("Colors: {0}", color)
  Next color
          
End Using

Im Beispiel wird die dataFile_2.xml Datei als Eingabe verwendet.

<root>
  <item sale-item='true' productID='123456' colors='blue green black'>
    <price>9.95</price>
  </item>
  <item sale-item='false' productID='124390'>
    <price>5.95</price>
  </item>
  <item sale-item='true' productID='53298'>
    <price>12.95</price>
  </item>
</root>

Hinweise

Diese Methode liest den Textinhalt an der aktuellen Leseposition und konvertiert ihn in den angeforderten Rückgabetyp. Text, Leerraum, signifikanter Leerraum und CDATA-Abschnitte sind verkettet. Kommentare und Verarbeitungsanweisungen werden übersprungen, und Entitätsverweise werden automatisch aufgelöst.

Diese Methode wird verwendet, um bei Bedarf Atomwertelemente aus dem aktuellen Knoteninhalt zu lesen, zu konvertieren und zurückzugeben. Wenn der Eingabetyp eine gültige Zuordnung für den Typ des aktuellen Knotens ist, wird eine Instanz des Zieltyps zurückgegeben, der den Wert des aktuellen Knotens enthält. Eine Liste der Standardzuordnungen finden Sie im Abschnitt "Hinweise" auf der XmlReader Referenzseite.

Wenn Sie z. B. den folgenden XML-Text hatten:

<elem>123 <!-- comment --> <?pi my_text?> 456 <?pi another_pi?></elem>

Wenn die Daten eingegeben werden und dem Methodenaufruf ein Zeichenfolgenarray bereitgestellt ReadContentAs wird, werden die ganzzahligen Werte gemäß der Liste der gültigen CLR-Typzuordnungen aus Zeichenfolgen konvertiert.

Wenn die Daten untypiert sind und dem Methodenaufruf ein Zeichenfolgenarray bereitgestellt ReadContentAs wird, wird der Inhalt in separate Zeichenfolgen analysiert. Ein Array mit zwei Zeichenfolgen wird mit den Werten "123" und "456" zurückgegeben. Die Leerzeichen werden nicht vom Inhalt erhalten.

Im Allgemeinen beim Lesen von nicht typisierten Daten wird der Inhalt nach dem angegebenen Typ analysiert. Wenn beispielsweise ein ganzzahliges Array an den ReadContentAs Methodenaufruf übergeben wird, wird die Zeichenfolge in ein Array mit ganzen Zahlen {123,456}analysiert.

Im folgenden Beispiel wird der XML-Text nicht durch Leerzeichen getrennt.

<elem>123<!-- comment --><?pi my_text?>456789<?pi another_pi?></elem>

Wenn der Inhalt untypiert ist und dem Methodenaufruf ein Zeichenfolgenarray bereitgestellt ReadContentAs wird, wird ein Array mit einer verketteten Zeichenfolge mit dem Wert "123456789" zurückgegeben.

In der folgenden Tabelle wird beschrieben, wie diese Methode jeden Knotentyp behandelt.

Xmlnodetype Zurückgegebener Wert Leseverhalten
Text

CDATA

Whitespace

SignificantWhitespace

EntityReference

EndEntity
Verketteter Inhalt von Text, CDATA, Leerzeichen und signifikanten Leerraumknoten, die in den angeforderten Typ konvertiert wurden. Wechselt zum nächsten Startelement- oder Endelementtag. Entitätsverweise werden automatisch erweitert.
Attribute Identisch mit dem Aufrufen XmlConvert.ToXxx des Attributwerts. Der Leser verbleibt an der aktuellen Position.
Comment

ProcessingInstruction
Ignoriert die Verarbeitungsanweisung (PI) oder den Kommentar und liest den verketteten Textinhalt, der auf die PI oder den Kommentar folgt. Wechselt zum nächsten Startelement- oder Endelementtag. Entitätsverweise werden automatisch erweitert.
EndElement Eine leere Zeichenfolge. Der Leser verbleibt an der aktuellen Position.
Element

XmlDeclaration

None

Document

DocumentType

Notation

Entity

DocumentFragment
Es InvalidOperationException wird eingeworfen. Undefiniert, obwohl der Leser in der Regel an der aktuellen Position bleibt.

Weitere Informationen finden Sie im Abschnitt "Hinweise" der XmlReader Referenzseite und im W3C-XML-Schemateil 2: Empfehlung für Datentypen .

Die asynchrone Version dieser Methode finden Sie unter ReadContentAsAsync.

Gilt für: