ISerializable - Сериализация синглетонов

Интерфейс ISerializable предоставляет только метод для сериализации объекта. Процесс десериализации управляется конструктором.

Проблема в том, что конструктор не может вернуть экземпляр, потому что конструктор СОЗДАЕТ новый экземпляр.

В моей реализации есть несколько атрибутов, соответствующих синглетам, созданным и поддерживаемым где-то еще.

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

Конструкторский подход не подходит для этого.

В Java вы бы вызвали метод ReadResolve(), есть ли эквивалент C#?

1 ответ

Решение

Вам нужно сделать так, чтобы ваши классы сохраняли ссылку на одноэлементную реализацию IObjectReference.

Взгляните на http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iobjectreference.aspx

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