Microsoft Unity. Как указать определенный параметр в конструкторе?
Я использую Microsoft Unity. У меня есть интерфейсICustomerService
и его реализацияCustomerService
, Я могу зарегистрировать их для контейнера Unity, используя следующий код:
container.RegisterType<ICustomerService, CustomerService>(new TransientLifetimeManager());
ЕслиCustomerService
имеет определенный параметр в своем конструкторе (например,ISomeService1
), Я использую следующий код (мне нужно указатьSomeService1
):
container.RegisterType<ICustomerService, CustomerService>(new TransientLifetimeManager(), new InjectionConstructor(new SomeService1()));
Здесь нет проблем.
Проблема появляется когдаCustomerService
Класс имеет два параметра (не один параметр, как в предыдущем примере) в своем конструкторе (например,ISomeService1
а такжеISomeService2
). Он отлично работает, когда я использую следующий код:container.RegisterType<ICustomerService, CustomerService>(new TransientLifetimeManager(), new InjectionConstructor(new SomeService1(), new SomeService2()));
Проблема в том, что я не хочу указыватьSomeService2()
для второго параметра. Я хочу указать только первый параметр -SomeService1()
, Но я получаю сообщение об ошибке, что мне нужно указать ни один или оба параметра.
Как я могу указать только первый параметр конструктора?