使用属性进行XML解析

本文关键字:XML 解析 属性 | 更新日期: 2023-09-27 18:20:02

我有基于XML的应用程序快捷键绑定配置。我需要解析它。

<ShortcutBinding>
  <ShortcutHandler Name ="Retail.Application.Documents.Outcome.Presentation.OutcomePresenter">
    <Shortcut Name="EditHeader">
      <Key>CTRL</Key>
      <Key>F4</Key>
    </Shortcut>
    <Shortcut Name="EditItem">
      <Key>F4</Key>
    </Shortcut>
  </ShortcutHandler>  
</ShortcutBinding>

我知道.Net具有用于将XML反序列化为对象的属性。任何人都可以使用属性为这种反序列化编写完整的示例吗。

使用属性进行XML解析

public class ShortcutBinding
{
    public ShortcutHandler ShortcutHandler { get; set; }
}
public class ShortcutHandler
{
    [XmlAttribute]
    public string Name { get; set; }
    [XmlElement("Shortcut")]
    public List<Shortcut> Shortcuts { get; set; }
}
public class Shortcut
{
    [XmlAttribute]
    public string Name { get; set; }
    [XmlElement("Key")]
    public List<string> Keys { get; set; }
}

反序列化:

XmlSerializer serializer = new XmlSerializer(typeof(ShortcutBinding));
var binding = (ShortcutBinding)serializer.Deserialize(XmlReader.Create(path));