指定值为

时间:2017-07-11 19:05:04

标签: c# xml deserialization

我确信这很简单,但我无法找到答案。这部分XML文件的正确类语法是什么?

enter image description here

我已经走到了这一步,但似乎错过了一些东西,原谅双关语,关键!我觉得我以错误的方式接近它,但我似乎无法找到一个匹配XML的示例代码,该XML在元素中具有值。

        [Serializable, XmlRoot("Keys")]
    public class Keys
    {
        [XmlElement("Key")]
        public Key Key { get; set; }          
    }

    [Serializable, XmlRoot("Key")]
    public class Key
    {
        [XmlAttribute("TYPE")]
        public string Type { get; set; } 

    }

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找可以获得号码的XmlTextAttribute。另外我想你想要一组键,在这种情况下,我们需要将它声明为一个集合。

[XmlRoot("Keys")]
public class Keys
{
    [XmlElement("Key")]
    public List<Key> Items { get; set; }          
}

public class Key
{
    [XmlAttribute("TYPE")]
    public string Type { get; set; } 

    [XmlText]
    public string Text {get;set;}
}

如果Keys不是您的实际根对象,则可以使用XmlArrayAttributeXmlArrayItemAttribute

public class MyObject
{
    [XmlArray("Keys")]
    [XmlArrayItem("Key")]
    public List<Key> Keys {get;set;}
}

public class Key
{
    [XmlAttribute("TYPE")]
    public string Type { get; set; } 

    [XmlText]
    public string Text {get;set;}
}