0

我有一些需要反序列化的 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 将等于“另一个值”?如果不是,那么反序列化此类属性的最佳方法是什么?

4

1 回答 1

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"]);
于 2013-04-22T13:08:07.753 回答