Да, завод впрыска:
container.RegisterType<IWeapon>(
new InjectionFactory(con => new Sword());
Конечно, я бы не стал использовать его в этом конкретном случае, поскольку поведение контейнера по умолчанию позволило бы выполнить это с помощью простого сопоставления типов. Полагаю, ваши настоящие делегаты немного сложнее.