首頁 >後端開發 >C++ >如何使用 XmlSerializer 將 XML 反序列化為 C# 物件?

如何使用 XmlSerializer 將 XML 反序列化為 C# 物件?

Barbara Streisand
Barbara Streisand原創
2025-01-15 15:56:47379瀏覽

How to Deserialize XML into C# Objects Using XmlSerializer?

使用XmlSerializer將XML反序列化為C#物件

本文探討如何使用XmlSerializer類別將XML文件反序列化為物件實例。假設您有一個如下結構的XML文件:

<code class="language-xml"><steplist><step><name>Name1</name><desc>Desc1</desc></step><step><name>Name2</name><desc>Desc2</desc></step></steplist></code>

要將此XML反序列化為對應的類別模型,您需要定義以下類別:

<code class="language-csharp">[XmlRoot("StepList")]
public class StepList
{
    [XmlElement("Step")]
    public List<Step> Steps { get; set; }
}

public class Step
{
    [XmlElement("Name")]
    public string Name { get; set; }
    [XmlElement("Desc")]
    public string Desc { get; set; }
}</code>

接下來,您可以使用XmlSerializer進行反序列化。以下是一個範例測試程式碼:

<code class="language-csharp">string testData = @"<steplist><step><name>Name1</name><desc>Desc1</desc></step><step><name>Name2</name><desc>Desc2</desc></step></steplist>";

XmlSerializer serializer = new XmlSerializer(typeof(StepList));
using (TextReader reader = new StringReader(testData))
{
    StepList result = (StepList)serializer.Deserialize(reader);
}</code>

要從文字檔案反序列化XML,請將檔案載入到FileStream中並將其傳遞給XmlSerializer

<code class="language-csharp">using (FileStream fileStream = new FileStream("<文件路径>", FileMode.Open))
{
    StepList result = (StepList)serializer.Deserialize(fileStream);
}</code>

請將<文件路径>替換為您的XML檔案的實際路徑。

以上是如何使用 XmlSerializer 將 XML 反序列化為 C# 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn