C# 反序列化后获取XmlElementAttribute的名称
我还没有找到这方面的任何信息,也许有人能帮上忙 我有一个XML(为方便起见简化):C# 反序列化后获取XmlElementAttribute的名称,c#,xml-serialization,C#,Xml Serialization,我还没有找到这方面的任何信息,也许有人能帮上忙 我有一个XML(为方便起见简化): 价值 价值 我尝试使用以下类对其进行反序列化: [XmlRoot("content")] public class Content { [XmlElement] public List<Item> Fields { get; set; } } public class Item { [XmlElement] public List<Item> Fie
价值
价值
我尝试使用以下类对其进行反序列化:
[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; }
}
[XmlRoot(“内容”)]
公开课内容
{
[XmlElement]
公共列表字段{get;set;}
}
公共类项目
{
[XmlElement]
公共列表字段{get;set;}
[XmlText]
公共字符串值{get;set;}
}
我有两个问题:
[XmlName]字符串名代码>在Item类中?或者类本身的某种属性?由于某些原因,无法将节点名称设置为“字段”并添加“类型”属性;-)虽然实际的类和序列化过程非常复杂,但我不希望实现自己的序列化程序
谢谢。您可以在属性的构造函数中设置匹配的XMl元素或属性的名称
[XmlAttribute("FieldAsAttribute")]
-->将属性序列化/反序列化为Xml属性FieldAsAttribute
或
-->将属性序列化/反序列化为Xml元素FieldAsElement这里唯一的答案是,不幸的是,这是不可能的
因此,我们编写了自己的序列化例程。看起来您正在尝试创建一个可以表示任意XML的结构。如果是这样,为什么要使用XML序列化呢?使用LINQtoXML可能更合适。好吧,你是对的,它是一个相当任意的结构。关键是,我已经在很多情况下使用了XML序列化,我希望在我的整个项目中保持这种约定(这是可能的,直到现在…)。当然,如果找不到解决方案,我将切换到LINQ。它将只序列化/反序列化具有此类名称的元素。正如上面提到的@svick,我需要反序列化任意XML结构。
[XmlAttribute("FieldAsAttribute")]
[XmlElement("FieldAsElement")]