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

编译代码

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

可靠编程

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

安全性

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

请参见

任务

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

参考

StreamWriter

其他资源

序列化(C# 和 Visual Basic)

序列化(C# 和 Visual Basic)