使用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中文网其他相关文章!