次の方法で共有


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

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

使用例

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

これに似たコードを、IntelliSense コード スニペットとして利用できます。 コード スニペット ピッカーでは、これは [XML] にあります。 詳細については、「方法 : IntelliSense コード スニペットを挿入する」を参照してください。

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)