次の方法で共有


方法: XML ファイルからオブジェクト データを読み込む (C# および Visual Basic)

XmlSerializer クラスを使用して XML ファイルに書き込んだオブジェクト データを読み込む例を次に示します。

使用例

このコードの例は、IntelliSense コード スニペットとしても利用できます。コード スニペット ピッカーでは、これは [XML] にあります。詳細については、「コード スニペット」を参照してください。

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()
{
    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 = new Book();
    overview = (Book)reader.Deserialize(file);

    Console.WriteLine(overview.title);

}

コードのコンパイル

ファイル名 "c:\IntroToVB.xml" を、シリアル化されたデータを含むファイルの名前に置き換えます。データのシリアル化の詳細については、「方法: XML ファイルにオブジェクト データを書き込む (C# および Visual Basic)」を参照してください。

クラスには、パラメーターのないパブリック コンストラクターが必要です。

パブリックなプロパティとフィールドだけが逆シリアル化されます。

信頼性の高いプログラミング

次の条件を満たす場合は、例外が発生する可能性があります。

  • シリアル化されるクラスにパブリックなパラメーターなしのコンストラクターがない場合

  • ファイルのデータが、逆シリアル化されるクラスのデータを表していない場合

  • ファイルが存在しない場合 (IOException)

セキュリティ

入力を常に検証し、信頼関係のないソースからのデータは絶対に逆シリアル化しないでください。再作成されたオブジェクトは、このオブジェクトを逆シリアル化したコードと同じアクセス権で、ローカル コンピューターで実行されます。アプリケーションでデータを使用する前に、入力をすべて検証してください。

参照

処理手順

方法: XML ファイルにオブジェクト データを書き込む (C# および Visual Basic)

関連項目

StreamWriter

概念

C# プログラミング ガイド

その他の技術情報

シリアル化 (C# および Visual Basic)

Visual Basic のプログラミング ガイド