我没有找到任何关于此的信息,也许有人可以提供帮助。
我有一个XML(为方便起见而简化):
<content>
<field1>value</field1>
<field2>
<field3>value</field3>
</field2>
</content>
我尝试使用这样的类反序列化它:
[XmlRoot("content")]
public class Content
{
[XmlElement]
public List<Item> Fields { get; set; }
}
public class Item
{
[XmlElement]
public List<Item> Fields { get; set; }
[XmlText]
public String Value { get; set; }
}
我有两个问题:
我可以获得该字段的实际名称吗?和Item类中的[XmlName] string name;
一样?或者类本身的某种属性?由于某些原因,无法将节点名称设置为“field”并添加“type”属性;-)虽然实际的类和序列化过程非常复杂,但我不想实现自己的序列化程序。
我可以添加像[XmlElement(“field *”)]这样的通配符吗?在我知道第一个问题的答案之前我无法测试它,所以如果有更好的选择,我也很想知道它。
感谢。
答案 0 :(得分:1)
您可以在属性的构造函数中设置匹配的XMl元素或属性的名称
[XmlAttribute("FieldAsAttribute")]
- &GT;将属性序列化/反序列化为Xml属性 FieldAsAttribute 或
[XmlElement("FieldAsElement")]
- &GT;将属性序列化/反序列化为Xml元素 FieldAsElement
答案 1 :(得分:0)
唯一的答案是,不幸的是,这是不可能的。
结果我们编写了自己的序列化例程。