Сериализуемый помеченный класс, но не работающий

Недавно я написал код для копирования класса с библиотекой 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 ответ

Решение

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

C5.IntervalHeap`1+Interval

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

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

Другие вопросы по тегам