如何:將物件資料寫入 XML 檔案 (C# 和 Visual Basic)
這個範例使用 XmlSerializer 類別,將來自類別的物件寫入 XML 檔案。
範例
這個程式碼範例會定義名為 Book 的類別、建立該類別的執行個體,並使用 XML 序列化,將執行個體寫入 XML 檔。
與此類似的程式碼也可以當做 IntelliSense 程式碼片段使用。 在 [程式碼片段管理員] 中,這個程式碼片段位於 [XML] 中。 如需詳細資訊,請參閱 程式碼片段。
Public Module XMLWrite
Sub Main()
WriteXML()
End Sub
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
End Module
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();
}
}
編譯程式碼
類別必須具有不含參數的公用建構函式。
穩固程式設計
下列情形可能會造成例外狀況 (Exception):
序列化的類別不具有公用、無參數的建構函式。
檔案存在並且是唯讀的 (IOException)。
路徑太長 (PathTooLongException)。
磁碟已滿 (IOException)。
安全性
如果檔案不存在,這個範例就會建立新檔案。 如果應用程式需要建立檔案,該應用程式就需要資料夾的 Create 權限。 如果檔案已經存在,則應用程式只需要 Write 權限,這是較小的權限。 若有可能,更為安全的做法是在部署期間建立檔案,並且只授與單一檔案的 Read 權限,而不授與資料夾的 Create 權限。
請參閱
工作
如何:讀取 XML 檔案的物件資料 (C# 和 Visual Basic)