Повторно введите зависимости недавно десериализованного объекта

Если программа буквально только что десериализовала объект (действительно не имеет значения, как, но просто говорят, что BinaryFormatter использовался).

Что хороший дизайн должен использовать для перевведения зависимостей этого объекта?

Существует ли общий шаблон для этого?

Я предполагаю, что должен был бы перенести Десериализовывание () метод для действия как фабрика в контейнере.

Спасибо!

9
задан nbevans 20 April 2010 в 02:47
поделиться

3 ответа

Не следует сериализовать объекты с зависимостями, которые сами по себе не могут быть сериализованы.

Вместо этого разделите его на два класса: извлеките сериализуемые части в отдельный класс .

После десериализации вы можете связать полученный объект с экземпляром исходного класса (с зависимостями).

11
ответ дан 3 November 2019 в 00:00
поделиться

Я бы использовал атрибут OnDeserialized , чтобы указать на метод, который будет выполнять повторную инъекцию.

1
ответ дан 3 November 2019 в 00:00
поделиться

Unity имеет концепцию « BuildUp », где вы можете попросить его выполнить зависимости существующего объекта. Я не знаю, есть ли у autofac (который, как я полагаю, вы используете из тегов) эквивалент.

0
ответ дан 3 November 2019 в 00:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: