序列化 IEnumerator使用收益回报创建

发布于 2024-09-07 12:40:01 字数 134 浏览 9 评论 0原文

有没有办法序列化(使用 BinaryFormatter)当我使用 yield return 时创建的 IEnumerator ?自动生成的类未标记为“可序列化”。

Is there a way to serialize (using BinaryFormatter) the IEnumerator<T> that gets created when I use yield returns? The autogenerated class isn't marked Serializable.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

指尖凝香 2024-09-14 12:40:09

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

Just iterate the enumerator and serialize each instance returned.

甩你一脸翔 2024-09-14 12:40:08

编译器生成的枚举没有应用 [Serializable] 属性,因此,不,开箱即用,您不能执行此操作。

你应该问自己,“为什么我在这里使用yield,一旦这个对象被反序列化,它意味着什么?”

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

The compiler generated enumerable does not have the [Serializable] attribute applied to it, so, no, out of the box you cannot do this.

You should ask yourself, "Why am I using a yield here, and what does it mean once this object is deserialized?"

If its convenience, you can use it to fill a type that can be serialized. If you use it to perform some heavy lifting in a lazy manner, you might want to consider changing your design to serialize/deserialize the information you need to perform that heavy lifting.

︶ ̄淡然 2024-09-14 12:40:07

您使用哪个类来实现 IEnumerableList 应该可以序列化。

在序列化集合之前,尝试对集合调用 ToList()

Which class are you using to implement IEnumerable<T>? List<T> should serialize OK.

Try calling ToList() on your collection before serializing it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文