Partager via


XmlReader.ReadContentAs(Type, IXmlNamespaceResolver) Méthode

Définition

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

Object

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.

S’applique à