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)