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

Muhammad Maisam Abbas 2021年4月29日
在 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="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://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 中。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - Csharp Object