可序列化标记为 class 但不工作

Serializable labeled class but not working

我最近写了一个用 C5 库 "IntervalHeap" 复制 class 的代码,但遇到了这样的错误消息。

System.Runtime.Serialization.SerializationException: 'Type 'C5.IntervalHeap`1+Interval[[TransSys1.Node, TransSys1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' in Assembly 'C5, Version=2.5.0.0, Culture=neutral, PublicKeyToken=282361b99ded7e8e' is not marked as serializable.'

我检查了 here 中的源代码,但是 IntervalHeap class 已经被标记为 [Serializable]。我再次构建了源代码,但它仍然无法正常工作。我用 x64 平台调试了我的项目。

你能告诉我潜在的原因是什么或如何解决吗?

异常消息指向 Interval 结构,定义为 C5.IntervalHeap<T> 中的内部结构 标注为

C5.IntervalHeap`1+Interval

您收到此错误是因为此 Interval 结构未标记为 Serializable

除非您拥有该来源(也许通过副本),否则您无能为力。
也许找到另一种方式来复制,而不需要序列化。