如何将对象数据写入 XML 文件 (C#)
本示例使用 XmlSerializer 类从某个类将对象写入 XML 文件。
示例
public class XMLWrite
{
static void Main(string[] args)
{
WriteXML();
}
public class Book
{
public String title;
}
public static void WriteXML()
{
Book overview = new Book();
overview.title = "Serialization Overview";
System.Xml.Serialization.XmlSerializer writer =
new System.Xml.Serialization.XmlSerializer(typeof(Book));
var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "//SerializationOverview.xml";
System.IO.FileStream file = System.IO.File.Create(path);
writer.Serialize(file, overview);
file.Close();
}
}
编译代码
所序列化的类必须有一个公共的无参数构造函数。
可靠编程
以下情况可能会导致异常:
进行序列化的类没有公共的无参数构造函数。
文件存在且为只读 (IOException)。
路径过长 (PathTooLongException)。
磁盘已满 (IOException)。
.NET 安全性
此示例在文件尚未存在时创建新文件。 如果某个应用程序需要创建文件,则该应用程序需要针对文件夹的 Create
访问权限。 如果文件已存在,则该应用程序只需要 Write
访问权限(这是较弱的特权)。 如有可能,在部署过程中创建文件,并且仅授予针对单个文件的 Read
访问权限(而不是针对 Create
文件夹的访问权限)会更加安全。