XmlReader.ReadContentAs(Type, IXmlNamespaceResolver) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Liest den Inhalt als Objekt vom angegebenen Typ.
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 Seit der Veröffentlichung von .NET Framework 3.5 kann der Wert des returnType
-Parameters nun auch auf den DateTimeOffset-Typ festgelegt werden.
- namespaceResolver
- IXmlNamespaceResolver
Ein IXmlNamespaceResolver-Objekt, das für die Auflösung von Präfixen von Namespaces verwendet wird, die im Zusammenhang mit der Typkonvertierung stehen. Dieses kann zum Beispiel beim Konvertieren eines XmlQualifiedName-Objekts in einen xs:string
verwendet werden.
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 Typumwandlung ist ungültig.
Der returnType
-Wert ist null
.
Der aktuelle Knoten ist kein unterstützter Knotentyp. Weitere Informationen finden Sie in der nachfolgenden Tabelle.
- oder -
Eine XmlReader-Methode wurde aufgerufen, bevor ein vorheriger asynchroner Vorgang abgeschlossen wurde. In diesem Fall wird InvalidOperationException mit der Meldung „Es wird bereits ein asynchroner Vorgang ausgeführt“ ausgelöst.
Lesen von 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
In diesem Beispiel wird die Datei dataFile_2.xml
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 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. Weitere Informationen finden Sie im Abschnitt "Hinweise" auf der XmlReader Referenzseite für eine Liste der Standardzuordnungen.
Wenn Sie beispielsweise den folgenden XML-Text hatten:
<elem>123 <!-- comment --> <?pi my_text?> 456 <?pi another_pi?></elem>
Wenn die Daten eingegeben werden und ein Zeichenfolgenarray dem ReadContentAs Methodenaufruf bereitgestellt wird, werden die ganzzahligen Werte gemäß der Liste der gültigen CLR-Typzuordnungen aus Zeichenfolgen konvertiert.
Wenn die Daten nicht typiert sind und ein Zeichenfolgenarray dem ReadContentAs Methodenaufruf bereitgestellt 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 untypierten Daten wird der Inhalt entsprechend dem angegebenen Typ analysiert. Wenn beispielsweise ein ganzzahliges Array für den ReadContentAs Methodenaufruf bereitgestellt wird, wird die Zeichenfolge in ein Array mit ganzzahligen 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 nicht eingegeben wird und ein Zeichenfolgenarray an den ReadContentAs Methodenaufruf übergeben 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 | Rückgabewert | Verhalten des Readers |
---|---|---|
Text CDATA Whitespace SignificantWhitespace EntityReference EndEntity |
Verketteter Inhalt von Text, CDATA, Leerraum und signifikantem Leerraumknoten, konvertiert in den angeforderten Typ. | Wird zum nächsten Anfangselement- oder Endelementtag verschoben. Entitätsverweise werden automatisch erweitert. |
Attribute |
Identisch mit dem Aufrufen XmlConvert.ToXxx des Attributwerts. |
Der Reader behält die aktuelle Position bei. |
Comment ProcessingInstruction |
Ignoriert die Verarbeitungsanweisung oder den Kommentar und liest den verketteten Textinhalt, der auf die Verarbeitungsanweisung oder den Kommentar folgt. | Wird zum nächsten Anfangselement- oder Endelementtag verschoben. Entitätsverweise werden automatisch erweitert. |
EndElement |
Eine leere Zeichenfolge. | Der Reader behält die aktuelle Position bei. |
Element XmlDeclaration None Document DocumentType Notation Entity DocumentFragment |
Es wird eine InvalidOperationException ausgelöst. | Nicht definiert, der Reader behält jedoch i. d. R. die aktuelle Position bei. |
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.