反序列化列表<Object>集合而不在.NET 6中创建额外的类

问题描述 投票:0回答:1

目前,我正在尝试将 XML 结构反序列化为 C# 中的类型化对象。首先,目标XML结构与对象(实体模型)的结构相同,如下两张图所示:

如何反序列化列表元素,而不创建扩展集合列表的额外类。如果 DataContractSerializer 无法做到这一点,我可以以任何其他优雅的方式进行反序列化。类结构必须是这样的,因为实体框架的功能依赖于它。我使用它从本地目录反序列化 XML 文件,并使用 EF 6 将实体保存在数据库中。我希望有一个优雅的解决方案。我也愿意接受图书馆的建议或其他解决此问题的方法。

这就是使用反序列化的代码:

c# xml entity-framework deserialization
1个回答
0
投票

只需反序列化为数组

TModel[]
List<TModel>
:

_serializer = new DataContractSerializer(typeof(TModel[]));

或:

_serializer = new DataContractSerializer(typeof(List<TModel>));

为什么不继承List呢?
几乎没有有充分的理由“扩展集合列表”,所以不要认为这是一个选项,通常有一个更简单的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.