将XML反序列化为Dictionary <string,string>

Cad*_*dab 5 .net c# xml serialization

我有一些XML;

<data>
  <name1>James</name1>
  <name2>John</name2>
  etc..
</data>
Run Code Online (Sandbox Code Playgroud)

name1,name2等可以是任何东西,我希望能够将这个xml理想地放入字典中,这是否可以使用内置的.net序列化?

谢谢,詹姆斯.

编辑:理想情况下我不想使用linq.是否可以将整个元素数组序列化为字符串?所以我最终得到一个包含所有子元素标签和数据的字符串对象'Data'?

Mat*_*zer 9

不,但您可以使用Linq-to-Xml来执行此操作:

XDocument.Load([file path, stream, whatever]).Descendants("data").Descendants()
    .ToDictionary(element => element.Name, element => element.Value)
Run Code Online (Sandbox Code Playgroud)

更新: 正如OP在他的编辑中所说,如果没有办法使用Linq-to-Xml,那么你需要自定义XML序列化实现IXmlSerializable(你可能想要检查这个其他问答:自定义xml序列化).