XmlReader.ReadContentAs(Type, IXmlNamespaceResolver) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Lit le contenu en tant qu'objet du type spécifié.
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
Paramètres
- returnType
- Type
Type de la valeur à retourner.
Remarque Avec le .NET Framework version 3.5, la valeur du paramètre returnType
peut maintenant être le type DateTimeOffset.
- namespaceResolver
- IXmlNamespaceResolver
Objet IXmlNamespaceResolver permettant de résoudre tous les préfixes d'espaces de noms liés à la conversion de type. Par exemple, il peut être utilisé lors de la conversion d’un objet XmlQualifiedName en xs:string
.
Cette valeur peut être null
.
Retours
Contenu de texte concaténé ou valeur d'attribut converti(e) en type demandé.
Exceptions
Le format du contenu n'est pas correct pour le type cible.
La tentative de cast n'est pas valide.
returnType
a la valeur null
.
Le nœud actuel n'est pas un type de nœud pris en charge. Voir le tableau ci-dessous pour plus d'informations.
- ou -
Une méthode XmlReader a été appelée avant la fin d’une opération asynchrone précédente. Dans ce cas, l’exception InvalidOperationException est levée avec le message « Une opération asynchrone est déjà en cours ».
Lire Decimal.MaxValue
.
Exemples
L’exemple suivant utilise la ReadContentAs méthode pour renvoyer le contenu de l’élément de couleurs dans un tableau d’objets de chaîne.
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
L'exemple prend le fichier dataFile_2.xml
comme entrée.
<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>
Remarques
Cette méthode lit le contenu du texte à la position actuelle du lecteur et le convertit en type de retour demandé. Le texte, les espaces blancs, les espaces blancs significatifs et les sections CDATA sont concaténés. Les commentaires et les instructions de traitement sont ignorés et les références d'entité sont automatiquement résolues.
Cette méthode est utilisée pour lire, convertir si nécessaire et retourner des éléments de valeur atomique à partir du contenu actuel du nœud. Si le type d’entrée est un mappage valide pour le type du nœud actuel, une instance du type cible contenant la valeur du nœud actuel est retournée. Consultez la section Remarques de la XmlReader page de référence pour obtenir la liste des mappages par défaut.
Par exemple, si vous avez le texte XML suivant :
<elem>123 <!-- comment --> <?pi my_text?> 456 <?pi another_pi?></elem>
Si les données sont typées et qu’un tableau de chaînes est fourni à l’appel ReadContentAs de méthode, les valeurs entières sont converties en chaînes en fonction de la liste des mappages de types CLR valides.
Si les données ne sont pas typées et qu’un tableau de chaînes est fourni à l’appel ReadContentAs de méthode, le contenu est analysé en chaînes distinctes. Un tableau contenant deux chaînes est retourné avec les valeurs « 123 » et « 456 ». Les espaces ne sont pas conservés du contenu.
En général, lors de la lecture de données non typées, le contenu est analysé en fonction du type fourni. Par exemple, si un tableau entier est fourni à l’appel ReadContentAs de méthode, la chaîne est analysée dans un tableau d’entiers {123,456}.
Dans l’exemple suivant, le texte XML n’est pas séparé par des espaces
<elem>123<!-- comment --><?pi my_text?>456789<?pi another_pi?></elem>
Si le contenu n’est pas typé et qu’un tableau de chaînes est fourni à l’appel ReadContentAs de méthode, un tableau contenant une chaîne concaténée est retourné avec la valeur « 123456789 ».
Le tableau suivant décrit comment cette méthode traite chaque type de nœud.
XmlNodeType | Valeur retournée | Comportement du lecteur |
---|---|---|
Text CDATA Whitespace SignificantWhitespace EntityReference EndEntity |
Nœuds de contenus de texte, CDATA, d'espace blanc et d'espace blanc significatif concaténés convertis en type demandé. | Avance jusqu'à la balise d'élément de début ou de fin suivante. Les références d’entité sont automatiquement développées. |
Attribute |
Identique à l’appel XmlConvert.ToXxx de la valeur d’attribut. |
Le lecteur reste dans sa position actuelle. |
Comment ProcessingInstruction |
Ignore l'instruction de traitement ou le commentaire et lit le contenu du texte concaténé qui suit l'instruction ou le commentaire. | Avance jusqu'à la balise d'élément de début ou de fin suivante. Les références d’entité sont automatiquement développées. |
EndElement |
Chaîne vide. | Le lecteur reste dans sa position actuelle. |
Element XmlDeclaration None Document DocumentType Notation Entity DocumentFragment |
Un objet InvalidOperationException est levé. | Non défini, bien que le lecteur reste généralement dans sa position actuelle. |
Pour plus d’informations, consultez la section Remarques de la XmlReader page de référence et la partie 2 du schéma XML W3C : Recommandation sur les types de données .
Pour obtenir la version asynchrone de cette méthode, consultez ReadContentAsAsync.