我有一些我需要反序列化的XML
<element>
<childElement key="myKey1">a value</childElement>
<childElement key="myKey2">another value</childElement>
</element>
进入像
这样的课程[XmlRoot(ElementName="element")]
public class Element
{
public string MyKey1 { get; set; }
public string MyKey2 { get; set; }
}
我是否可以注释MyKey1和MyKey2,以便如果上面的xml被反序列化,那么MyKey1将是“一个值”而MyKey2将等于“另一个值”?如果没有,那么对这类属性进行反序列化的最佳方法是什么?
答案 0 :(得分:1)
您可以使用XmlAttribute
属性,但您的xml似乎更适合Dictionary<string,string>
使用Linq To Xml
string xml = @"<element>
<childElement key=""myKey1"">a value</childElement>
<childElement key=""myKey2"">another value</childElement>
</element>";
var xDoc = XDocument.Parse(xml);
var dict = xDoc.Descendants("childElement")
.ToDictionary(x => x.Attribute("key").Value, x => x.Value);
Console.WriteLine(dict["myKey1"]);