我正在尝试使用 XmlSerializer 反序列化 Xml 文件。 我的文件的一部分如下所示:
<bla>
<ListOfListOfTest>
<ListOfTest>
<Test>
</Test>
</ListOfTest>
</ListOfListOfTest>
</bla>
我尝试了不同的方法,但都不行。
我的第一次尝试是这样的:
public class bla
{
public bla()
{
ListOfListOfTest = new List<List<Test>>();
}
[...]
public List<List<Test>> ListOfListOfTest{ get; set; }
}
-> 不起作用。
第二次尝试:
public class bla
{
public bla()
{
ListOfListOfTest = new List<List<Test>>();
}
[..]
public List<List<Test>> ListOfListOfTest { get; set; }
[XmlArrayItemAttribute]
public List<List<Test>> listOfListOfTest { get { return ListOfListOfTest ; } }
}
->同样失败
第三次尝试:
public class bla
{
public bla()
{
ListOfListOfTest = new List<Foo>();
}
[...]
public List<Foo> ListOfListOfTest { get; set; }
}
public class Foo
{
public Foo()
{
ListOfTest = new List<Test>();
}
public List<Test> ListOfTest { get; set; }
}
->失败...
失败意味着 XmlSerializer
在 serializer.Deserialize()
期间没有填充 List
。
我总是得到一个包含零个元素的 List
。
我做错了什么?
谢谢你的努力
最佳答案
要了解正确反序列化后 XML 的外观,请复制您的 XML:
<bla>
<ListOfListOfTest>
<ListOfTest>
<Test>
</Test>
</ListOfTest>
</ListOfListOfTest>
</bla>
在 C# 中创建一个类。单击顶部的“编辑”,然后单击“选择性粘贴”,然后在光标位于类内时单击“粘贴 XML 作为类”。 Visual Studio 将为您正确反序列化 XML 并创建必要的类。使用它来比较您认为需要的和实际需要的,以便自己弄清楚反序列化应该如何工作。
关于c# - 嵌套列表 C# 的 XML 反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42759687/