【问题标题】:Serializable labeled class but not working可序列化标记类但不工作
【发布时间】:2018-09-02 20:31:04
【问题描述】:

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

System.Runtime.Serialization.SerializationException: '类型 'C5.IntervalHeap`1+Interval[[TransSys1.Node, TransSys1, 版本=1.0.0.0,文化=中性,PublicKeyToken=null]]' 在程序集中 'C5,版本=2.5.0.0,文化=中性, PublicKeyToken=282361b99ded7e8e' 未标记为可序列化。'

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

您能告诉我可能的原因或解决方法吗?

【问题讨论】:

标签: c# serialization priority-queue c5


【解决方案1】:

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

C5.IntervalHeap`1+Interval

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

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

【讨论】:

  • hmm.. 你有足够的代表知道评论和答案之间的区别,那么你为什么要指出异常作为答案呢?
  • 我读到了 OP 的问题:潜在的原因是什么。将进一步解释该怎么做。
  • 您是说异常的潜在原因是结构(值类型)应标记为serializable?你不认为它可能是结构中引用的通用T
猜你喜欢
  • 2012-07-15
  • 2013-11-23
  • 2015-02-15
  • 2019-12-15
  • 2016-07-23
  • 1970-01-01
  • 2022-01-18
  • 2016-11-21
  • 2015-09-22
相关资源
最近更新 更多