我无法反序列化以下 XML 文件

问题描述 投票:0回答:1
c# xml deserialization xml-deserialization xmltextreader
1个回答
0
投票

您缺少公制类。每个 XmlElement 都需要一个对应的类才能使序列化工作。 Units 有一个 Metric 元素。你错过了那个。

使用这些课程:

[Serializable]
[XmlRoot(ElementName = "LandXML")]
public class LandXML
{
  [XmlElement(ElementName = "Units")]
  public Units Units { get; set; }
}
public class Units
{
  [XmlElement(ElementName = "Metric")]
  public Metric Metric { get; set; }
}
public class Metric
{
  [XmlAttribute(AttributeName = "linearUnit" )]
  public string LinearUnit { get; set; }
}

然后进行此更改:

Console.WriteLine($"LinearUnit: {landXML.Units.Metric.LinearUnit}");

会输出

线性单位:米

知道有在线工具可以帮助您从 Xml 生成数据传输对象,例如 https://xmltocsharp.azurewebsites.net/ 可以做到这一点,或者您最喜欢的 IDE 可能会提供一个扩展来做同样的事情。

© www.soinside.com 2019 - 2024. All rights reserved.