【问题标题】:How to deserialize XML attributes如何反序列化 XML 属性
【发布时间】:2011-08-22 09:52:47
【问题描述】:

我可以创建一个对象来保存一个反序列化的 xml 文件。将 Xml 元素映射到对象很容易,我只需在类中创建与元素名称匹配的属性。但是我如何将 Xml 属性映射到类。例如,如果我有这个:

<Typestyle name="" location="" />

我想将名称和位置属性反序列化为我的类的属性?

【问题讨论】:

    标签: c# .net xml xml-serialization


    【解决方案1】:

    为什么不使用 .NET 框架 SDK 中的 xsd.exe 工具来创建表示架构的 C# 类代码。然后将这些类添加到您的项目中,您可以将 XmlSerializer 与这些类一起使用,而无需自己编写类代码。

    试试这个http://msdn.microsoft.com/en-us/library/x6c1kb0s.aspx

    【讨论】:

    • 如果 XSD 模式不存在怎么办?
    • xsd.exe 工具还可以从格式良好的 XML 推断(创建)XML 模式文档。
    • 在复杂的情况下,您需要手动编辑生成的架构。
    • 我完全同意,但对于这种情况,我认为这是一个快速简单的解决方案。
    【解决方案2】:

    查看XmlAttributeAttribute 类。

    public class TypeStyle
    {
        [XmlAttribute("name")]
        public string Name { get; set; }
    
        [XmlAttribute("location")]
        public string Location{ get; set; }
    }
    

    【讨论】:

    • 这是一个奇怪的类名,是的 :)
    【解决方案3】:
    public class Typestyle
    {
        [XmlAttribute]
        public string name { get; set; }
        [XmlAttribute]
        public string location { get; set; }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 2020-08-28
      • 1970-01-01
      相关资源
      最近更新 更多