Openrasta: экземпляр подкачки в преобразователе зависимостей
Предположим, я зарегистрировал какой-то экземпляр в решателе зависимостей OpenRasta, используя
resolver.AddDependencyInstance(IInterface, instance, DependencyLifetime.Singleton)
Теперь, если я захочу поменять этот экземпляр позже, скажем, перечитать свежие данные из БД, это еще один вызов resolver.AddDependencyInstance - правильная вещь?
Проверяя реализацию InternalDependencyResolver, кажется, все в порядке. Однако я спрашиваю, потому что поведение не определено (в источниках openrasta, где я проверял), а префикс метода "Add" наводит на мысль о другом поведении.
1 ответ
Решение
Я бы не использовал Singleton, если вам нужно поменять экземпляр в какой-то момент. Используйте DependencyLifetime.Transient и добавьте конструктор в класс, где вам нужен новый экземпляр