【发布时间】:2017-12-27 13:52:33
【问题描述】:
我正在编写一个 UWP 应用程序,并希望将 xml 中的列表反序列化为对象列表:
<List>
<Element Name="A">
<SubElement Name="A1">
<Color> Blue </Color>
<Color> Red </Color>
</SubElement>
<SubElement Name="A2">
<Color> Blue </Color>
<Color> Green </Color>
</SubElement>
</Element>
<Element Name="B">
<SubElement Name="B1">
<Color> Yellow </Color>
<Color> Red </Color>
</SubElement>
<SubElement Name="B2">
<Color> Yellow </Color>
<Color> Green </Color>
</SubElement>
</Element>
<Element Name="C"/>
<SubElement Name="C1">
<Color> Purple </Color>
<Color> Red </Color>
</SubElement>
<SubElement Name="C2">
<Color> Purple </Color>
<Color> Green </Color>
</SubElement>
</Element>
</List>
类如下所示:
public class Element
{
[XmlAttribute]
public string Name { get; set; }
[XmlElement("SubElement")]
public List<SubElement> _subelement { get; set; }
}
public class SubElement
{
[XmlElement("Color")]
public string Color{ get; set; }
[XmlAttribute("Name")]
public string Name { get; set; }
}
我的 C# 代码如下所示:
XDocument doc = XDocument.Load("list.xml");
XElement node = doc.Descendants(XName.Get("List")).FirstOrDefault();
var serializer = new XmlSerializer(typeof(List<Element>), new XmlRootAttribute("List"));
var elementList = serializer.Deserialize(node.CreateReader()) as List<Element>;
在调试模式下,此应用程序运行良好。在发布模式下,我收到 PlatformNotSupportedException 错误,就像在 this 线程中一样。我发现问题一定和项目设置中的Compile with .NET Native tool chain选项有关。但我没有找到解决问题的方法。
我的问题:上面显示的代码是否有一个简单的替代方法可以将 XML 反序列化为对象,它不使用 XmlSerializer 并且在 UWP 应用程序中工作?
【问题讨论】:
标签: c# uwp xmlserializer