Udostępnij za pośrednictwem


Porady: odczytywanie danych o obiektach z pliku XML (C# i Visual Basic)

W tym przykładzie odczytuje dane obiektu, który został poprzednio zapisane do pliku XML, za pomocą XmlSerializer klasy.

Przykład

Poniższy przykład kodu jest też dostępny jako urywek kodu IntelliSense.W Próbniku urywek kodu znajduje się w XML.Aby uzyskać więcej informacji, zobacz Wstawki kodu.

Public Class Book
    Public Title As String 
End Class 

Public Sub ReadXML()
    Dim reader As New System.Xml.Serialization.XmlSerializer(GetType(Book))
    Dim file As New System.IO.StreamReader(
        "c:\temp\SerializationOverview.xml")
    Dim overview As Book
    overview = CType(reader.Deserialize(file), Book)
    Console.WriteLine(overview.Title)
End Sub
public class Book
{
    public String title;
}       

public void ReadXML()
{
    // First write something so that there is something to read ... 
    var b = new Book { title = "Serialization Overview" };
    var writer = new System.Xml.Serialization.XmlSerializer(typeof(Book));
    var wfile = new System.IO.StreamWriter(@"c:\temp\SerializationOverview.xml");
    writer.Serialize(wfile, b);
    wfile.Close();

    // Now we can read the serialized book ...
    System.Xml.Serialization.XmlSerializer reader = 
        new System.Xml.Serialization.XmlSerializer(typeof(Book));
    System.IO.StreamReader file = new System.IO.StreamReader(
        @"c:\temp\SerializationOverview.xml");
    Book overview =  (Book)reader.Deserialize(file);
    file.Close();

    Console.WriteLine(overview.title);

}

Kompilowanie kodu

Nazwa pliku "c:\IntroToVB.xml" należy zastąpić nazwą pliku zawierającego dane serializowane.Aby uzyskać więcej informacji na temat szeregowania danych, zobacz Porady: wpisywanie danych o obiektach do pliku XML (C# i Visual Basic).

Klasa musi mieć publicznego konstruktora bez parametrów.

Rozszeregować tylko publiczne właściwości i pól.

Stabilne programowanie

Następujące warunki, może spowodować wyjątek:

  • Klasa, poddany serializacji ma publiczny konstruktor bez parametrów.

  • Dane w pliku nie reprezentują dane z klasy do rozszeregowania.

  • Plik nie istnieje (IOException).

Zabezpieczenia

Należy zawsze sprawdzać, nakładów i nigdy nie deserializacji danych z niezaufanego źródła.Obiekt utworzony ponownie uruchamia się na komputerze lokalnym z uprawnieniami kod, który rozszeregować go.Sprawdź, czy wszystkie dane wejściowe przed rozpoczęciem korzystania z danych w aplikacji.

Zobacz też

Zadania

Porady: wpisywanie danych o obiektach do pliku XML (C# i Visual Basic)

Informacje

StreamWriter

Koncepcje

Przewodnik programowania w języku C#

Inne zasoby

Serializacja (C# i Visual Basic)

Przewodnik programowania w Visual Basic