有没有办法序列化(使用BinaryFormatter
)我使用IEnumerator<T>
时创建的yield return
?自动生成的类未标记为Serializable
。
答案 0 :(得分:3)
您使用哪个班级来实施IEnumerable<T>
? List<T>
应序列化确定。
在序列化之前,请尝试在您的收藏集上调用ToList()
。
答案 1 :(得分:3)
编译器生成的枚举没有应用[Serializable]属性,所以,不,开箱即用,你不能这样做。
你应该问自己,“为什么我在这里使用收益率,这个对象被反序列化后意味着什么?”
如果方便,可以使用它来填充可序列化的类型。如果您以懒惰的方式使用它来执行繁重的工作,您可能需要考虑更改设计以序列化/反序列化执行繁重任务所需的信息。
答案 2 :(得分:0)
只需迭代枚举器并序列化返回的每个实例。