Мне нужно зарегистрировать мой контейнер Autofac с определенным интерфейсом, в этом случае я хочу разрешить макет.
Как я могу это сделать?
Я пробовал:
var AppContainer = ApplicationContainer.GetApplicationContainer();
var cb = new ContainerBuilder();
cb.RegisterType<Mock<IStudyLoader>>().As<IStudyLoader>().SingleInstance();
cb.Update(AppContainer);
Я не хочу изменять свой код, чтобы разрешить что-то еще, кроме IStudyLoader
, но Mock
не заменяется на IStudyLoader
; например, Mock
заменяется на IStudyLoader
, но я не могу зарегистрировать Mock
, потому что это не тип.
Поправьте меня, пожалуйста; У меня такое чувство, что я чего-то упускаю.
(У меня есть еще одно ограничение, я не могу использовать другой контейнер, кроме ApplicationContainer.GetApplicationContainer ()
)
(Я думаю, что лучше вручную вводить зависимость при тестировании, но я не на этот раз хотите изменить производственный код.)