DataContractSerializer.IsStartObject メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
逆シリアル化できるオブジェクトにリーダーが配置されているかどうかを決定します。
オーバーロード
IsStartObject(XmlReader) |
逆シリアル化できるオブジェクトに XmlReader が配置されているかどうかを決定します。 |
IsStartObject(XmlDictionaryReader) |
逆シリアル化できるオブジェクトに XmlDictionaryReader が配置されているかどうかを決定します。 |
IsStartObject(XmlReader)
逆シリアル化できるオブジェクトに XmlReader が配置されているかどうかを決定します。
public:
override bool IsStartObject(System::Xml::XmlReader ^ reader);
public override bool IsStartObject (System.Xml.XmlReader reader);
override this.IsStartObject : System.Xml.XmlReader -> bool
Public Overrides Function IsStartObject (reader As XmlReader) As Boolean
パラメーター
戻り値
読み取るストリームの開始要素にリーダーが配置されている場合は true
。それ以外の場合は false
。
適用対象
IsStartObject(XmlDictionaryReader)
逆シリアル化できるオブジェクトに XmlDictionaryReader が配置されているかどうかを決定します。
public:
override bool IsStartObject(System::Xml::XmlDictionaryReader ^ reader);
public override bool IsStartObject (System.Xml.XmlDictionaryReader reader);
override this.IsStartObject : System.Xml.XmlDictionaryReader -> bool
Public Overrides Function IsStartObject (reader As XmlDictionaryReader) As Boolean
パラメーター
- reader
- XmlDictionaryReader
XML ストリームを読み取るために使用する XmlDictionaryReader。
戻り値
読み取るストリームの開始要素にリーダーが配置されている場合は true
。それ以外の場合は false
。
例
次の例では、IsStartObject プロパティを使用して、データの開始が検出されるかどうかを決定します。
public static void ReadObjectData(string path)
{
// Create the reader.
FileStream fs = new FileStream(path, FileMode.Open);
XmlDictionaryReader reader =
XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas());
// Create the DataContractSerializer specifying the type,
// root and namespace to use. The root value corresponds
// to the DataContract.Name value, and the namespace value
// corresponds to the DataContract.Namespace value.
DataContractSerializer ser =
new DataContractSerializer(typeof(Person),
"Customer", @"http://www.contoso.com");
// Test if the serializer is on the start of the
// object data. If so, read the data and write it
// to the console.
while (reader.Read())
{
if (ser.IsStartObject(reader))
{
Console.WriteLine("Found the element");
Person p = (Person)ser.ReadObject(reader);
Console.WriteLine("{0} {1} id:{2}",
p.FirstName, p.LastName, p.ID);
}
Console.WriteLine(reader.Name);
break;
}
fs.Flush();
fs.Close();
}
Public Shared Sub ReadObjectData(ByVal path As String)
' Create the reader.
Dim fs As New FileStream(path, FileMode.Open)
Dim reader As XmlDictionaryReader = _
XmlDictionaryReader.CreateTextReader(fs, New XmlDictionaryReaderQuotas())
' Create the DataContractSerializer specifying the type,
' root and namespace to use. The root value corresponds
' to the DataContract.Name value, and the namespace value
' corresponds to the DataContract.Namespace value.
Dim ser As New DataContractSerializer(GetType(Person), _
"Customer", "http://www.contoso.com")
' Test if the serializer is on the start of the
' object data. If so, read the data and write it
' to the console.
While reader.Read()
If ser.IsStartObject(reader) Then
Console.WriteLine("Found the element")
Dim p As Person = CType(ser.ReadObject(reader), Person)
Console.WriteLine("{0} {1} id:{2}", p.FirstName, p.LastName, p.ID)
End If
Console.WriteLine(reader.Name)
End While
fs.Flush()
fs.Close()
End Sub
注釈
IsStartObject は、オブジェクトが XML 要素に配置されているかどうかをチェックすることで、オブジェクトを読み取ることができるかどうかを決定します。 さらに、リーダーが配置されている XML 要素の名前と名前空間を調べ、その値を想定される名前および名前空間と比較します。 想定される名前および名前空間は、コンストラクターに渡される種類のデータ コントラクト名および名前空間、またはコンストラクターに渡される rootName
値および rootNamespace
の値 (存在する場合) により設定できます。
適用対象
.NET