首页 >后端开发 >C++ >如何有效地将 XML 数据反序列化为 C# 对象?

如何有效地将 XML 数据反序列化为 C# 对象?

Patricia Arquette
Patricia Arquette原创
2025-01-15 16:12:44664浏览

How to Effectively Deserialize XML Data into C# Objects?

C# XML反序列化:完整指南

将XML数据反序列化为对象是访问和处理各种应用程序中结构化信息的关键步骤。本文将深入探讨如何构建类以实现成功的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>

示例用法

以下测试代码演示了反序列化过程:

<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进行反序列化:

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

通过遵循这些指南并使用提供的示例,您可以有效地反序列化XML数据,并在应用程序中将其作为对象处理。

以上是如何有效地将 XML 数据反序列化为 C# 对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn