c# - 嵌套列表 C# 的 XML 反序列化

标签 c# xml deserialization xml-deserialization

我正在尝试使用 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; }
    }

->失败...

失败意味着 XmlSerializerserializer.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/

相关文章:

c# - 从特定 URL 获取 ip

java - 无法使用 Vuforia 解析文件 qcar_config.xsd

java - Android Studio - 自定义 ListView 崩溃

java - Jettison 或 Kryo

c# - Azure 服务总线队列

c# - ExcelDataReader.AsDataSet 不工作

c# - GraphServiceClient PageIterator 失败,错误为 'The Parsable does not contain a collection property'

xml - 需要有关 namespace 的 xslt 转换的帮助

java - 使用具有复杂多态结构的 Jackson 反序列化 JSON

java - 直接自引用导致循环异常