Как временно обойти контракты на создание объекта домена при восстановлении приложения из резервной копии?
Объекты модели предметной области нашего приложения имеют конструкторы с нетривиальными контрактами. Например, объект Entry требует объекта Catalog для создания. Проблема в том, что эти контракты должны быть временно нарушены, когда я выполняю массовое восстановление объектов из файла XML, поскольку зависимые объекты могут быть недоступны, пока файл резервной копии не будет полностью обработан.
Есть какой-либо установленный образец или решение этой проблемы?
1 ответ
Там будет несколько способов сделать это.
Есть какой-либо установленный образец или решение этой проблемы?
То, что приходит на ум, это шаблон моментов.
Вероятно, совершенно очевидно, что использование вашего текущего конструктора не завершит работу:), поэтому вам нужно будет использовать другой вызов метода.
Вы можете использовать другой конструктор, если у вас есть аргументы, которые могут получить его.
В мире C# (я уверен, что подобные или, что лучше, конструкции существуют в других языках), вы можете пойти так далеко, чтобы создать метод / конструктор internal
и используйте атрибут InternalsVisibleToAttribute, чтобы предоставить вашему массовому загрузчику доступ.