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

定義

指定された型のオブジェクトとして内容を読み取ります。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

パラメーター

returnType
Type Type Type Type

返される値の型。The type of the value to be returned.

.NET Framework 3.5 のリリースでは、returnType パラメーターの値に 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

型変換に関連する名前空間プレフィックスの解決に使用される IXmlNamespaceResolver オブジェクト。An IXmlNamespaceResolver object that is used to resolve any namespace prefixes related to type conversion. たとえば、XmlQualifiedName オブジェクトを xs:string に変換するときにこれを使用できます。For example, this can be used when converting an XmlQualifiedName object to an xs:string.

この値は、null の場合もあります。This value can be null.

戻り値

要求された型に変換された、連結されたテキストの内容または属性値。The concatenated text content or attribute value converted to the requested type.

例外

コンテンツが、指定した型の正しい形式になっていません。The content is not in the correct format for the target type.

試行されたキャストが無効です。The attempted cast is not valid.

returnType 値は null です。The returnType value is null.

現在のノードは、サポートされているノード型ではありません。The current node is not a supported node type. 詳細については、次の表を参照してください。See the table below for details.

または-or-

先行の非同期操作が完了する前に、XmlReader メソッドが呼び出されました。An XmlReader method was called before a previous asynchronous operation finished. この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

Decimal.MaxValue を読み取りました。Read Decimal.MaxValue.

次の例ではReadContentAs 、メソッドを使用して、colors 要素の内容を文字列オブジェクトの配列に返します。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

この例は、dataFile_2.xml ファイルを入力として使用します。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>

注釈

このメソッドは、現在のリーダーの位置にあるテキストの内容を読み取り、要求された戻り値の型に変換します。This method reads the text content at the current reader position and converts it to the requested return type. テキスト、空白、有意の空白、および CDATA セクションは連結されます。Text, white space, significant white space and CDATA sections are concatenated. コメントと処理命令はスキップされ、エンティティ参照は自動的に解決されます。Comments and processing instructions are skipped and entity references are automatically resolved.

このメソッドは、現在のノードコンテンツから、必要に応じて読み取り、変換、およびアトミック値項目を返すために使用されます。This method is used to read, convert if necessary, and return atomic value items from the current node content. 入力の型が現在のノードの型に対して有効なマッピングの場合、現在のノードの値を含むターゲット型のインスタンスが返されます。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. 既定のマッピングの一覧にXmlReaderついては、リファレンスページの「解説」セクションを参照してください。See the Remarks section in the XmlReader reference page for a list of the default mappings.

たとえば、次の XML テキストがあるとします。For example, if you had the following XML text:

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

データが入力され、文字列の配列がメソッドのReadContentAs呼び出しに指定されている場合は、有効な CLR 型マッピングの一覧に従って、整数値が文字列から変換されます。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.

データが型指定されていない場合に、文字列ReadContentAs配列がメソッドの呼び出しに渡されると、コンテンツは個別の文字列に解析されます。If the data is untyped and a string array is supplied to the ReadContentAs method call, then the content is parsed into separate strings. 2つの文字列を含む配列が、値 "123" と "456" と共に返されます。An array containing two strings is returned with the values "123" and "456". スペースはコンテンツから保持されません。The spaces are not preserved from the content.

一般に、型指定されていないデータを読み取るときは、指定された型に従ってコンテンツが解析されます。In general when reading untyped data the content is parsed according to the supplied type. たとえば、 ReadContentAsメソッドの呼び出しに整数の配列を指定した場合、文字列は整数{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}.

次の例では、XML テキストはスペースで区切られていません。In the following example the XML text is not separated by spaces

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

コンテンツが型指定されていない場合に、メソッドReadContentAsの呼び出しに文字列配列を指定すると、1つの連結された文字列を含む配列が値 "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".

次の表では、このメソッドが各ノード型を処理する方法について説明します。The following table describes how this method treats each node type.

XmlNodeTypeXmlNodeType 戻り値Return value リーダーの動作Reader behavior
Text

CDATA

Whitespace

SignificantWhitespace

EntityReference

EndEntity
テキストの連結されたコンテンツ、CDATA、空白、および有意の空白のノードが指定された型に変換されます。Concatenated content of text, CDATA, white space and significant white space nodes converted to the requested type. 次の要素開始タグまたは要素終了タグに移動します。Moves to the next start element or end element tag. エンティティ参照は自動的に展開されます。Entity references are automatically expanded.
Attribute 属性値にXmlConvert.ToXxx対してを呼び出す場合と同じです。Same as calling XmlConvert.ToXxx on the attribute value. リーダは現在の位置に留まります。The reader remains in the current position.
Comment

ProcessingInstruction
処理命令 (PI) またはコメントは無視し、PI またはコメントに続く連結されたテキスト コンテンツを読みます。Ignores the processing instruction (PI) or comment and reads the concatenated text content that follows the PI or comment. 次の要素開始タグまたは要素終了タグに移動します。Moves to the next start element or end element tag. エンティティ参照は自動的に展開されます。Entity references are automatically expanded.
EndElement 空の文字列。An empty string. リーダは現在の位置に留まります。The reader remains in the current position.
Element

XmlDeclaration

None

Document

DocumentType

Notation

Entity

DocumentFragment
InvalidOperationException がスローされます。An InvalidOperationException is thrown. 未定義。ただし、リーダーは通常、現在の位置に留まります。Undefined, although typically the reader remains in the current position.

詳細については、 XmlReaderリファレンスページの「解説」 と W3C XML Schema Part 2 を参照してください。データ型の推奨。For more information, see the Remarks section of the XmlReader reference page and the W3C XML Schema Part 2: Datatypes recommendation.

このメソッドの非同期バージョンについてはReadContentAsAsync、「」を参照してください。For the asynchronous version of this method, see ReadContentAsAsync.

適用対象