序列化使用yield return </t>创建的IEnumerator <t>

时间:2010-07-01 22:08:07

标签: c# .net serialization yield

有没有办法序列化(使用BinaryFormatter)我使用IEnumerator<T>时创建的yield return?自动生成的类未标记为Serializable

3 个答案:

答案 0 :(得分:3)

您使用哪个班级来实施IEnumerable<T>List<T>应序列化确定。

在序列化之前,请尝试在您的收藏集上调用ToList()

答案 1 :(得分:3)

编译器生成的枚举没有应用[Serializable]属性,所以,不,开箱即用,你不能这样做。

你应该问自己,“为什么我在这里使用收益率,这个对象被反序列化后意味着什么?”

如果方便,可以使用它来填充可序列化的类型。如果您以懒惰的方式使用它来执行繁重的工作,您可能需要考虑更改设计以序列化/反序列化执行繁重任务所需的信息。

答案 2 :(得分:0)

只需迭代枚举器并序列化返回的每个实例。