ISerializable - Сериализация синглетонов
Интерфейс ISerializable предоставляет только метод для сериализации объекта. Процесс десериализации управляется конструктором.
Проблема в том, что конструктор не может вернуть экземпляр, потому что конструктор СОЗДАЕТ новый экземпляр.
В моей реализации есть несколько атрибутов, соответствующих синглетам, созданным и поддерживаемым где-то еще.
Мне нужен процесс десериализации, чтобы получить этот экземпляр и присвоить атрибуту вместо создания нового экземпляра.
Конструкторский подход не подходит для этого.
В Java вы бы вызвали метод ReadResolve(), есть ли эквивалент C#?
1 ответ
Вам нужно сделать так, чтобы ваши классы сохраняли ссылку на одноэлементную реализацию IObjectReference.
Взгляните на http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iobjectreference.aspx