![]() |
1
7
C编译器生成的迭代器类型不可序列化,永远不会序列化。 如果你读 this page ,您将看到序列化迭代器是没有意义的。 您需要返回一个数组。
编辑
:最简单的方法是将迭代器移动到单独的方法,然后更改
|
![]() |
2
1
我遇到了同样的问题,在我的例子中,根本不可能将整个对象图从基于迭代器的IEnumerable更改为具体的类型。我根本负担不起将内存转换为具体的类型,如列表或数组。另外,如果返回某个具有IEnumerable属性的对象的IEnumerable,该怎么办?不可接受的是,我必须重复使用整个对象图来转换所有IEnumerable。 我不明白为什么DataContractSerializer不能迭代任何IEnumerable类型并以与任何其他集合类型相同的方式将其元素呈现为XML,即使IEnumerable没有具体的支持类型。 这是一个应该修复的错误。 |