如何:将对象数据写入 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 访问权限(一种较弱的特权)。 应尽可能在部署过程中创建文件并仅授予对单个文件的 Read 访问权限,而不是授予对文件夹的 Create 访问权限,这样做会更加安全。
请参见
任务
如何:从 XML 文件读取对象数据(C# 和 Visual Basic)