Отличный вопрос, Пол. Я рад, что ты спросил.
Для неявно зарегистрированных Func
s Виндзор просматривает свойство, видит его необязательным, и просто не пытается его получить, поскольку ... ну - это необязательно, так что вы наверняка довольны отсутствием Зависимость заселена.
Чтобы заполнить его, вы должны либо зарегистрировать фабрику явно
container.Register(Component.For<Func<IBar>>().AsFactory().Lifestyle.Transient);
или вы помечаете зависимость как требуется (на ComponentModel
с использованием метода Require
), что, вероятно, лучше всего сделать с помощью IComponentModelConstructionContributor