目前,我正在尝试将 XML 结构反序列化为 C# 中的类型化对象。首先,目标XML结构与对象(实体模型)的结构相同,如下两张图所示:
如何反序列化列表元素,而不创建扩展集合列表的额外类。如果 DataContractSerializer 无法做到这一点,我可以以任何其他优雅的方式进行反序列化。类结构必须是这样的,因为实体框架的功能依赖于它。我使用它从本地目录反序列化 XML 文件,并使用 EF 6 将实体保存在数据库中。我希望有一个优雅的解决方案。我也愿意接受图书馆的建议或其他解决此问题的方法。
这就是使用反序列化的代码:
只需反序列化为数组
TModel[]
或 List<TModel>
:
_serializer = new DataContractSerializer(typeof(TModel[]));
或:
_serializer = new DataContractSerializer(typeof(List<TModel>));
为什么不继承List呢?
几乎没有有充分的理由“扩展集合列表”,所以不要认为这是一个选项,通常有一个更简单的解决方案。