XmlReader.ReadContentAs(Type, IXmlNamespaceResolver) Método

Definição

Lê o conteúdo como um objeto do tipo especificado.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);
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

Parâmetros

returnType
Type

O tipo do valor a ser retornado.The type of the value to be returned.

Observação Com a versão do .NET Framework 3.5, o valor do parâmetro returnType agora pode ser do 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

Um objeto IXmlNamespaceResolver que é usado para resolver todos os prefixos de namespace relacionados à conversão de tipo.An IXmlNamespaceResolver object that is used to resolve any namespace prefixes related to type conversion. Por exemplo, ele pode ser usado ao converter um objeto XmlQualifiedName em um xs:string.For example, this can be used when converting an XmlQualifiedName object to an xs:string.

Este valor pode ser null.This value can be null.

Retornos

Object

O valor de atributo ou conteúdo de texto concatenado convertido para o tipo solicitado.The concatenated text content or attribute value converted to the requested type.

Exceções

O conteúdo não está no formato correto para o tipo de destino.The content is not in the correct format for the target type.

A tentativa de conversão não é válida.The attempted cast is not valid.

O valor returnType é null.The returnType value is null.

O nó atual não é um tipo de nó com suporte.The current node is not a supported node type. Confira a tabela abaixo para obter detalhes.See the table below for details.

- ou --or-

Um método XmlReader foi chamado antes do término de uma operação assíncrona anterior.An XmlReader method was called before a previous asynchronous operation finished. Nesse caso, InvalidOperationException será gerado com a mensagem “Uma operação assíncrona já está em andamento”.In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

Leia o Decimal.MaxValue.Read Decimal.MaxValue.

Exemplos

O exemplo a seguir usa o ReadContentAs método para retornar o conteúdo do elemento Colors para uma matriz de objetos String.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

O exemplo usa o arquivo dataFile_2.xml como entrada.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>

Comentários

Esse método lê o conteúdo de texto na posição atual do leitor e o converte para o tipo de retorno solicitado.This method reads the text content at the current reader position and converts it to the requested return type. Texto, o espaço em branco, o espaço em branco significativo e seções CDATA são concatenados.Text, white space, significant white space and CDATA sections are concatenated. Comentários e instruções de processamento são ignorados e referências a entidades são resolvidas automaticamente.Comments and processing instructions are skipped and entity references are automatically resolved.

Esse método é usado para ler, converter, se necessário, e retornar itens de valor atômico do conteúdo do nó atual.This method is used to read, convert if necessary, and return atomic value items from the current node content. Se o tipo de entrada for um mapeamento válido para o tipo do nó atual, uma instância do tipo de destino que contém o valor do nó atual será retornada.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. Consulte a seção comentários na XmlReader página de referência para obter uma lista dos mapeamentos padrão.See the Remarks section in the XmlReader reference page for a list of the default mappings.

Por exemplo, se você tivesse o seguinte texto XML:For example, if you had the following XML text:

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

Se os dados forem digitados e uma matriz de cadeia de caracteres for fornecida à ReadContentAs chamada de método, os valores inteiros serão convertidos de cadeias de caracteres de acordo com a lista de mapeamentos de tipo CLR válidos.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 os dados forem não tipados e uma matriz de cadeia de caracteres for fornecida para a ReadContentAs chamada de método, o conteúdo será analisado em cadeias separadas.If the data is untyped and a string array is supplied to the ReadContentAs method call, then the content is parsed into separate strings. Uma matriz que contém duas cadeias de caracteres é retornada com os valores "123" e "456".An array containing two strings is returned with the values "123" and "456". Os espaços não são preservados do conteúdo.The spaces are not preserved from the content.

Em geral, ao ler dados não tipados, o conteúdo é analisado de acordo com o tipo fornecido.In general when reading untyped data the content is parsed according to the supplied type. Por exemplo, se uma matriz de inteiros for fornecida para a ReadContentAs chamada de método, a cadeia de caracteres será analisada em uma matriz de inteiros {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}.

No exemplo a seguir, o texto XML não está separado por espaçosIn the following example the XML text is not separated by spaces

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

Se o conteúdo não for digitado e uma matriz de cadeia de caracteres for fornecida para a ReadContentAs chamada de método, uma matriz contendo uma cadeia de caracteres concatenada será retornada com o valor "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".

A tabela a seguir descreve como esse método trata cada tipo de nó.The following table describes how this method treats each node type.

XmlNodeTypeXmlNodeType Valor retornadoReturn value Comportamento do leitorReader behavior
Text

CDATA

Whitespace

SignificantWhitespace

EntityReference

EndEntity
Concatenado conteúdo de texto, de CDATA, de espaço em branco e os nós significativos de espaço em branco convertidos para o tipo solicitado.Concatenated content of text, CDATA, white space and significant white space nodes converted to the requested type. Move para a seguir marca de início ou elemento de extremidade.Moves to the next start element or end element tag. Referências a entidades são automaticamente expandidas.Entity references are automatically expanded.
Attribute O mesmo que chamar XmlConvert.ToXxx o valor do atributo.Same as calling XmlConvert.ToXxx on the attribute value. O leitor permanece na posição atual.The reader remains in the current position.
Comment

ProcessingInstruction
Ignora a instrução de processamento (PI) ou o comentário e ler o conteúdo concatenado de texto que segue o PI ou o comentário.Ignores the processing instruction (PI) or comment and reads the concatenated text content that follows the PI or comment. Move para a seguir marca de início ou elemento de extremidade.Moves to the next start element or end element tag. Referências a entidades são automaticamente expandidas.Entity references are automatically expanded.
EndElement Uma cadeia de caracteres vazia.An empty string. O leitor permanece na posição atual.The reader remains in the current position.
Element

XmlDeclaration

None

Document

DocumentType

Notation

Entity

DocumentFragment
InvalidOperationException é lançada.An InvalidOperationException is thrown. Indefinido, embora geralmente o leitor permaneça na posição atual.Undefined, although typically the reader remains in the current position.

Para obter mais informações, consulte a seção comentários da XmlReader página de referência e o esquema XML do W3C parte 2: recomendação dos tipos de dados.For more information, see the Remarks section of the XmlReader reference page and the W3C XML Schema Part 2: Datatypes recommendation.

Para obter a versão assíncrona desse método, consulte ReadContentAsAsync .For the asynchronous version of this method, see ReadContentAsAsync.

Aplica-se a