HOWTO · Csharp

在 C# 中將物件序列化為 XML

XmlSerializer 類可用於將類物件序列化為 C# 中的 XML 檔案或字串。

本頁內容

本教程將討論如何在 C# 中將類物件序列化為 XML 檔案或字串。

使用 C# 中的 XmlSerializer 類將物件序列化為 XML

序列化意味著將類物件轉換為 XML 或二進位制格式。XmlSerializer 類在 C# 中將類物件轉換為 XML,反之亦然。XmlSerializer.Serialize() 方法將類物件的所有公共欄位和屬性轉換為 XML 格式。如果我們想將其寫入 XML 檔案或字串,則需要使用 public 訪問說明符來定義我們的類。以下程式碼示例向我們展示瞭如何使用 C# 中的 XmlSerializer 類將類物件序列化為 XML 字串變數。

using System;
using System.IO;
using System.Linq;
using System.Xml;
using System.Xml.Serialization;

namespace serialize_object {
  public class Sample {
    public string value { get; set; }
  }
  class Program {
    static void Main(string[] args) {
      Sample obj = new Sample();
      obj.value = "this is some value";
      string xml = "";
      XmlSerializer serializer = new XmlSerializer(typeof(Sample));
      using (var sww = new StringWriter()) {
        using (XmlWriter writer = XmlWriter.Create(sww)) {
          serializer.Serialize(writer, obj);
          xml = sww.ToString();  // Your XML
        }
      }
      Console.WriteLine(xml);
    }
  }
}

輸出:

<?xml version="1.0" encoding="utf-16"?><Sample xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema"><value>this is some value</value></Sample>

在上面的程式碼中,我們使用 C# 中的 XmlSerializer.Serialize() 函式將 Sample 類的物件 obj 序列化為 XML 字串變數 xml。我們首先通過傳遞 typeof(Sample) 引數來初始化 XmlSerializer 類的例項。這將建立型別為樣本的 XmlSerializer 類的例項。然後,我們建立了 StringWriter 類的例項,以將資料寫入字串變數。然後,我們建立了 XmlWriter 類的例項以寫入 StringWriter 類的例項。然後,我們使用 serializer.Serialize(writer, obj) 將物件寫入 StringWriter 類的例項,並使用 ToString() 函式將結果儲存到字串變數 xml 中。