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 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 |
|---|---|---|
TextCDATAWhitespaceSignificantWhitespaceEntityReferenceEndEntity |
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. |
CommentProcessingInstruction |
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. |
ElementXmlDeclarationNoneDocumentDocumentTypeNotationEntityDocumentFragment |
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.