Я использую 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(). Но я получаю ошибку, которую мне нужно указать ни один, ни оба параметра.
Как я могу указать только первый параметр конструктора?