XmlReader.ReadContentAs(Type, IXmlNamespaceResolver) XmlReader.ReadContentAs(Type, IXmlNamespaceResolver) XmlReader.ReadContentAs(Type, IXmlNamespaceResolver) XmlReader.ReadContentAs(Type, IXmlNamespaceResolver) Method

Definizione

Legge il contenuto come oggetto del tipo specificato.Reads the content as an object of the type specified.

public:
 virtual System::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

Parametri

returnType
Type Type Type Type

Tipo di valore da restituire.The type of the value to be returned.

Nota Con il rilascio di .NET Framework 3.5, il valore del parametro returnType ora può essere il tipo DateTimeOffset.Note With the release of the .NET Framework 3.5, the value of the returnType parameter can now be the DateTimeOffset type.

namespaceResolver
IXmlNamespaceResolver IXmlNamespaceResolver IXmlNamespaceResolver IXmlNamespaceResolver

Oggetto IXmlNamespaceResolver utilizzato per risolvere qualsiasi prefisso di spazio dei nomi correlato al tipo di conversione.An IXmlNamespaceResolver object that is used to resolve any namespace prefixes related to type conversion. Può essere usato ad esempio per la conversione di un oggetto XmlQualifiedName in xs:string.For example, this can be used when converting an XmlQualifiedName object to an xs:string.

Il valore può essere null.This value can be null.

Restituisce

Contenuto del testo concatenato o valore dell'attributo convertito nel tipo specificato.The concatenated text content or attribute value converted to the requested type.

Eccezioni

Il contenuto non presenta il formato corretto per il tipo di destinazione.The content is not in the correct format for the target type.

Il tentativo di cast non è valido.The attempted cast is not valid.

Il valore di returnType è null.The returnType value is null.

Il nodo corrente non è un tipo di nodo supportato.The current node is not a supported node type. Per ulteriori informazioni vedere la tabella riportata di seguito.See the table below for details.

In alternativa-or-

È stato chiamato un metodo della classe XmlReader prima del completamento di un'operazione asincrona precedente.An XmlReader method was called before a previous asynchronous operation finished. In questo caso, viene generata l'eccezione InvalidOperationException con il messaggio "È già in corso un'operazione asincrona".In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

Leggere Decimal.MaxValue.Read Decimal.MaxValue.

Esempi

L'esempio seguente usa il ReadContentAs per restituire il contenuto dell'elemento colore in una matrice di oggetti stringa.The following example uses the ReadContentAs method to return the contents of the colors element into an array of string objects.

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

Nell'esempio viene utilizzato il file dataFile_2.xml come input.The example uses the dataFile_2.xml file as input.

<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>

Commenti

Questo metodo legge il contenuto di testo nella posizione corrente del reader e lo converte nel tipo restituito richiesto.This method reads the text content at the current reader position and converts it to the requested return type. Il testo, gli spazi vuoti, gli spazi vuoti significativi e le sezioni CDATA sono concatenati.Text, white space, significant white space and CDATA sections are concatenated. I commenti e le istruzioni di elaborazione vengono ignorati e i riferimenti alle entità vengono risolti automaticamente.Comments and processing instructions are skipped and entity references are automatically resolved.

Questo metodo viene utilizzato per leggere, convertire se necessario e restituire gli elementi di valore atomico dal nodo corrente del contenuto.This method is used to read, convert if necessary, and return atomic value items from the current node content. Se il tipo di input è un mapping valido per il tipo del nodo corrente quindi un'istanza del tipo di destinazione che contiene il valore del nodo corrente viene restituito.If the input type is a valid mappings for the type of the current node then an instance of the target type containing the value of the current node is returned. Vedere la sezione osservazioni nel XmlReader pagina di riferimento per un elenco di mapping predefiniti.See the Remarks section in the XmlReader reference page for a list of the default mappings.

Ad esempio, se si ha il seguente testo XML:For example, if you had the following XML text:

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

Se i dati tipizzati e una matrice di stringhe viene fornita per il ReadContentAs chiamata al metodo, quindi i valori interi vengono convertiti da stringhe in base all'elenco di mapping del tipo CLR valido.If the data is typed and a string array is supplied to the ReadContentAs method call, then the integer values are converted from strings according to the list of valid CLR type mappings.

Se i dati non sono tipizzati e una matrice di stringhe viene fornita per il ReadContentAs chiamata di metodo, il contenuto viene analizzato in stringhe separate.If the data is untyped and a string array is supplied to the ReadContentAs method call, then the content is parsed into separate strings. Viene restituita una matrice contenente due stringhe con i valori "123" e "456".An array containing two strings is returned with the values "123" and "456". Gli spazi non vengono mantenuti dal contenuto.The spaces are not preserved from the content.

In genere durante la lettura di dati non tipizzati il contenuto viene analizzato in base al tipo fornito.In general when reading untyped data the content is parsed according to the supplied type. Ad esempio, se una matrice di integer viene fornita per il ReadContentAs metodo chiamare quindi la stringa viene analizzata in una matrice di interi {123,456}.For example, if an integer array is supplied to the ReadContentAs method call then the string is parsed into an array of integers {123,456}.

Nell'esempio seguente il testo XML non sia separato da spaziIn the following example the XML text is not separated by spaces

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

Se il contenuto è tipizzato e una matrice di stringhe viene fornita per il ReadContentAs metodo quindi chiama una matrice che contiene una stringa concatenata viene restituita con il valore "123456789".If the content is untyped and a string array is supplied to the ReadContentAs method call then an array containing one concatenated string is returned with the value "123456789".

La tabella seguente descrive come questo metodo considera ogni tipo di nodo.The following table describes how this method treats each node type.

XmlNodeTypeXmlNodeType Valore restituitoReturn value Comportamento del lettoreReader behavior
Text

CDATA

Whitespace

SignificantWhitespace

EntityReference

EndEntity
Contenuto concatenato di nodi di tipo text, CDATA, spazi vuoti e spazi vuoti significativi convertiti nel tipo richiesto.Concatenated content of text, CDATA, white space and significant white space nodes converted to the requested type. Si sposta al successivo tag di fine o di inizio dell'elemento.Moves to the next start element or end element tag. I riferimenti a entità vengono espansi automaticamente.Entity references are automatically expanded.
Attribute Equivale a chiamare XmlConvert.ToXxx sul valore dell'attributo.Same as calling XmlConvert.ToXxx on the attribute value. Il lettore resta nella posizione corrente.The reader remains in the current position.
Comment

ProcessingInstruction
Ignora l'istruzione di elaborazione (PI, Processing Instruction) o il commento e legge il contenuto del testo concatenato successivo all'istruzione di elaborazione o al commento.Ignores the processing instruction (PI) or comment and reads the concatenated text content that follows the PI or comment. Si sposta al successivo tag di fine o di inizio dell'elemento.Moves to the next start element or end element tag. I riferimenti a entità vengono espansi automaticamente.Entity references are automatically expanded.
EndElement Stringa vuota.An empty string. Il lettore resta nella posizione corrente.The reader remains in the current position.
Element

XmlDeclaration

None

Document

DocumentType

Notation

Entity

DocumentFragment
Viene generato un tipo InvalidOperationException.An InvalidOperationException is thrown. Non definito, sebbene in genere il lettore resti nella posizione corrente.Undefined, although typically the reader remains in the current position.

Per altre informazioni, vedere la sezione Osservazioni del XmlReader pagina di riferimento e il W3C XML Schema Part 2: Tipi di dati raccomandazione.For more information, see the Remarks section of the XmlReader reference page and the W3C XML Schema Part 2: Datatypes recommendation.

Per la versione asincrona di questo metodo, vedere ReadContentAsAsync.For the asynchronous version of this method, see ReadContentAsAsync.

Si applica a