Я немного новичок из DI, так что простите меня, если это неправильный подход или глупый вопрос.Как я могу заказать свои параметры ctor для DI/IOC?
Предположим, у меня есть форма, которая создает/обновляет заказ, и я знаю, что вам нужно будет отобразить список продуктов и клиентов для отображения. Я хочу передать объект Order, который он редактирует, но я также хочу, чтобы в качестве зависимостей были введены продукты ServiceService и CustomersService.
Таким образом, я хочу, чтобы мой контейнер IoC (в зависимости от того, с каким я стал) предоставлял услуги, но для вызова объекта Order для редактирования будет использоваться код вызова.
Должен ли я объявить конструктор как взятие объекта Order в качестве первого параметра и ProductsService и CustomersService после этого, например:
public OrderForm(Order order, ProductsService prodsSvc, CustomersService custsSvc)
... или если зависимости придет первый и последний объект Order, например:
public OrderForm(ProductsService prodsSvc, CustomersService custsSvc, Order order)
Имеет ли это значение? Это зависит от того, какой контейнер IoC я использую? Или есть «лучший» способ?
Хорошо, это имеет смысл. Таким образом, либо я использую инъекцию свойств для всех моих зависимостей, либо ТОЛЬКО передаю зависимости в ctor и вводит свойство для «необходимого» объекта? – 2008-10-01 05:22:15
Да, ты прав. Не смешивайте DP и обычные свойства, поскольку это может привести к непредсказуемым проблемам и ограничить диапазон подходящих каркасов IoC. – aku 2008-10-01 05:27:22