DataContractSerializer.IsStartObject Methode

Definition

Bestimmt, ob der Reader auf einem Objekt positioniert ist, das deserialisiert werden kann.

Überlädt

IsStartObject(XmlReader)

Bestimmt, ob der XmlReader auf einem Objekt positioniert ist, das deserialisiert werden kann.

IsStartObject(XmlDictionaryReader)

Bestimmt, ob der XmlDictionaryReader auf einem Objekt positioniert ist, das deserialisiert werden kann.

IsStartObject(XmlReader)

Quelle:
DataContractSerializer.cs
Quelle:
DataContractSerializer.cs
Quelle:
DataContractSerializer.cs

Bestimmt, ob der XmlReader auf einem Objekt positioniert ist, das deserialisiert werden kann.

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

Parameter

reader
XmlReader

Das XmlReader-Objekt, das zum Lesen des XML-Streams verwendet wird.

Gibt zurück

true, wenn der Reader sich am Startelement des zu lesenden Streams befindet, andernfalls false.

Gilt für:

IsStartObject(XmlDictionaryReader)

Quelle:
DataContractSerializer.cs
Quelle:
DataContractSerializer.cs
Quelle:
DataContractSerializer.cs

Bestimmt, ob der XmlDictionaryReader auf einem Objekt positioniert ist, das deserialisiert werden kann.

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

Parameter

reader
XmlDictionaryReader

Ein XmlDictionaryReader-Objekt, das zum Lesen des XML-Streams verwendet wird.

Gibt zurück

true, wenn der Reader sich am Startelement des zu lesenden Streams befindet, andernfalls false.

Beispiele

In dem folgenden Beispiel wird die IsStartObject-Eigenschaft verwendet, um zu ermitteln, ob der Datenanfang gefunden wurde.

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

Hinweise

Das IsStartObject-Objekt bestimmt, ob ein Objekt gelesen werden kann, indem es überprüft, ob dieses auf einem XML-Element positioniert ist. Weiterhin analysiert es den Namen und Namespace des XML-Elements, auf dem der Reader positioniert ist, und vergleicht die Werte mit dem erwarteten Namen und Namespace. Der erwartete Name und Namespace werden wie folgt festgelegt: Datenvertragsname und Namespace des in den Konstruktor übergebenen Typs oder die in den Konstruktor übergebenen Werte für rootName und rootNamespace (falls vorhanden).

Gilt für: