Сериализуемый помеченный класс, но не работающий - PullRequest
0 голосов
/ 02 сентября 2018

Недавно я написал код для копирования класса с библиотекой C5 «IntervalHeap», но обнаружил сообщение об ошибке, подобное этому.

System.Runtime.Serialization.SerializationException: 'Тип 'C5.IntervalHeap`1 + Интервал [[TransSys1.Node, TransSys1, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null]] 'в сборке 'C5, версия = 2.5.0.0, культура = нейтральная, PublicKeyToken = 282361b99ded7e8e 'не помечен как сериализуемый.'

Я проверил исходный код в здесь , но класс IntervalHeap уже помечен как [Serializable]. Я снова собрал исходный код, но он все еще не работает. Я отладил свой проект на платформах x64.

Можете ли вы дать мне знать, каковы возможные причины или как ее решить?

1 Ответ

0 голосов
/ 02 сентября 2018

Сообщение об исключении указывает на структуру Interval, определенную как внутренняя структура в C5.IntervalHeap<T> отмечен как

C5.IntervalHeap`1+Interval

Вы получаете эту ошибку, потому что эта Interval структура не помечена Serializable.

Если у вас нет этого источника (возможно, с помощью копии), вы ничего не можете с этим поделать.
Может быть, найти другой способ взять копию, без сериализации.

...