如何:将对象数据写入 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();
}

编译代码

该类必须具有无参数的公共构造函数。

可靠编程

以下情况可能会导致异常:

安全性

本示例创建新的文件(如果该文件尚未存在)。 如果应用程序需要创建文件,则应用程序需要文件夹的 Create 访问权限。 如果该文件已经存在,则应用程序仅需要 Write 访问权限(一种较弱的特权)。 应尽可能在部署过程中创建文件并仅授予对单个文件的 Read 访问权限,而不是授予对文件夹的 Create 访问权限,这样做会更加安全。

请参见

任务

如何:从 XML 文件读取对象数据(C# 和 Visual Basic)

参考

StreamWriter

其他资源

序列化(C# 和 Visual Basic)

序列化(C# 和 Visual Basic)