首页 >后端开发 >C++ >如何使用 XmlSerializer 将 XML 反序列化为 C# 对象?

如何使用 XmlSerializer 将 XML 反序列化为 C# 对象?

Barbara Streisand
Barbara Streisand原创
2025-01-15 15:56:47381浏览

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