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