Сериализуемый помеченный класс, но не работающий
Недавно я написал код для копирования класса с библиотекой 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
,
Если у вас нет этого источника (возможно, с помощью копии), вы ничего не можете с этим поделать.
Может быть, найти другой способ взять копию, без сериализации.