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文字列オブジェクトの配列に色要素の内容を返します。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. 値「123」および「456」では、2 つの文字列を含む配列が返されます。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メソッドを呼び出すし、値 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.

適用対象