Допустим, у меня есть IService
и две реализации ServiceA
и ServiceB
. Тогда давайте предположим, что ServiceA
имеет параметр ClassA
в своем конструкторе (среди прочих), а ServiceB
имеет параметр ClassB
. Я бы тогда хотел:
- Зарегистрируйте услуги следующим образом:
containerBuilder.RegisterType<ServiceA>().AsImplementedInterfaces();
containerBuilder.RegisterType<ServiceB>().AsImplementedInterfaces();
- Зарегистрируйте экземпляр либо
ClassA
, либо ClassB
(это определяется во время выполнения).
- Когда какой-то другой компонент хочет
IService
, autofac предоставит один базовый , который может быть сконструирован , т. Е. Если у него есть ClassA
объект в хранилище, он создаст и предоставит ServiceA
и т. Д. .
Как мне этого добиться? Обратите внимание, что ClassA
и ClassB
не имеют общего интерфейса.