Когда я использую эту регистрацию:
container.Register(
Component
.For<IFooFactory>()
.ImplementedBy<FooFactory>(),
Component
.For<IFoo>()
.UsingFactoryMethod(kernel => kernel.Resolve<IFooFactory>().CreateFoo())
);
Я получаю это исключение:
Castle.MicroKernel.ComponentRegistrationException: Тип MyNamespace.IFoo является абстрактным.
Таким образом, невозможно реализовать его как реализацию службы MyNamespace.IFoo
Я не совсем уверен, в чем проблема. Но трассировка стека показывает, что в DefaultComponentActivator.CreateInstance () выполняется следующее условие, а затем выдается ошибка:
if (createProxy == false && Model.Implementation.IsAbstract)
Мне нужен какой-нибудь прокси здесь?
Регистрация неверна?