Я работаю над проектом, в котором инфраструктура Unity используется как контейнер IoC. Мой вопрос связан с инъекцией необязательной зависимости (в данном случае регистратора) на несколько классов с использованием инъекции свойств или сеттеров.
Я не хочу загромождать конструкторы всех моих классов с этими необязательными зависимостями, но я не могу найти хороший способ справиться с этим в Unity. Как вы это сделаете, в соответствии с документацией MSDN добавив атрибут свойства:
private ILogger logger;
[Dependency]
public ILogger Logger
{
get { return logger; }
set { logger = value; }
}
Я считаю это очень уродливым. В StructureMap можно было сделать следующее, чтобы установить все свойства данного типа:
SetAllProperties(policy => policy.OfType<ILog>());
Кто-нибудь знает, можно ли сделать что-то подобное в Unity?
Edit:
Ким Майор предлагает использовать этот подход, который также может быть достигнут с помощью кода.
Мне бы интересны примеры того, как это сделать автоматически для всех подходящих свойств.