反序列化xml属性

本文关键字:属性 xml 反序列化 | 更新日期: 2023-09-27 18:15:30

我使用XmlSerializer将xml文档反序列化为一些类对象。是否有一种方法可以将节点的属性反序列化到键/值字典中,而不必为每个属性命名属性?例子:

public class Panel {
    public Dictionary<string, string> AllAttributes {get;set;}
    [XmlElement("image", typeof(Image))]
    [XmlElement("panel", typeof(Panel))]
    public object[] Items { get; set; }
}

反序列化xml属性

您有两个选择:

  1. 实现你自己的序列化器

  2. 实现映射功能:

    • 使用XmlSerializer来反序列化到一个临时变量(例如var temp),而不是直接进入你的类。
    • 调用映射函数,传递临时变量temp。这个函数创建一个Panel类的新实例,然后循环temp属性并将它们映射到这个实例,最后它返回新实例。