Кажется возможным с помощью Container.OpenScope ()
Нет, DryIoc не разделяет регистрации между областями, они всегда идут в корневой контейнер .
Вы можете перерегистрировать новую услугу, передав параметр IfAlreadyRegistered.Replace
.Чтобы это работало, вам также нужно изменить как старую, так и новую регистрацию, чтобы использовать Setup.With(asResolutionCall: true)
.Вот причина, по которой .
Начальная настройка:
container.Register<MyServiceUser>();
container.Register<IService, MyService>(
setup: Setup.With(asResolutionCall: true));
Замена IService
:
container.Register<IService, MyReplacementService>(
ifAlreadyRegistered: IfAlreadyRegistered.Replace,
setup: Setup.With(asResolutionCall: true));