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

XmlSerializer クラスを使用して、クラスから XML ファイルにオブジェクトを書き込む例を次に示します。

使用例

このコード例は、Book という名前のクラスを定義し、そのクラスのインスタンスを作成してから、XML シリアル化を使用してインスタンスを XML ファイルに書き込みます。

これに似たコードを、IntelliSense コード スニペットとして利用できます。コード スニペット マネージャーではXML にあります。詳細については、「コード スニペット」を参照してください。

Public Class Book
    Public Title As String
End Class

Public Sub WriteXML()
    Dim overview As New Book
    overview.Title = "Serialization Overview"
    Dim writer As New System.Xml.Serialization.XmlSerializer(GetType(Book))
    Dim file As New System.IO.StreamWriter(
        "c:\temp\SerializationOverview.xml")
    writer.Serialize(file, overview)
    file.Close()
End Sub
public class Book
{
    public String title; 

 }

public void WriteXML()
{
    Book overview = new Book();
    overview.title = "Serialization Overview";
    System.Xml.Serialization.XmlSerializer writer = 
        new System.Xml.Serialization.XmlSerializer(typeof(Book));

    System.IO.StreamWriter file = new System.IO.StreamWriter(
        @"c:\temp\SerializationOverview.xml");
    writer.Serialize(file, overview);
    file.Close();
}

コードのコンパイル

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

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

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

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

  • ファイルが存在するものの、読み取り専用の場合 (IOException)

  • パスが長すぎる (PathTooLongException)。

  • ディスクの空き領域がない場合 (IOException)

セキュリティ

次のコード例では、ファイルが存在しない場合は新規にファイルを作成します。アプリケーションでファイルを作成する必要がある場合、そのアプリケーションにはフォルダーに対する Create アクセスが必要です。ファイルが既に存在する場合、アプリケーションに必要なのは、より低い権限である Write アクセスだけです。フォルダーに対して Create アクセスを許可するのではなく、可能な限りアプリケーションの配置時にファイルを作成しておき、1 つのファイルに対してのみ Read アクセスを許可する方が安全です。

参照

処理手順

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

関連項目

StreamWriter

その他の技術情報

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

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