Quand j'utilise cette inscription:Windsor Castle: UsingFactoryMethod ne peut pas instancier avec une erreur bizarre
container.Register(
Component
.For<IFooFactory>()
.ImplementedBy<FooFactory>(),
Component
.For<IFoo>()
.UsingFactoryMethod(kernel => kernel.Resolve<IFooFactory>().CreateFoo())
);
Je reçois cette exception:
Castle.MicroKernel.ComponentRegistrationException: Type MyNamespace.IFoo est abstrait. En tant que tel, il est impossible de instansiate comme la mise en œuvre du service MyNamespace.IFoo
Je ne suis pas vraiment sûr de ce que le problème est. Mais la trace de la pile montre que, dans « DefaultComponentActivator.CreateInstance() », la condition suivante réussit et l'erreur est renvoyée:
if (createProxy == false && Model.Implementation.IsAbstract)
Ai-je besoin d'une procuration de quelque sorte ici? L'enregistrement est-il incorrect?
Le IFooFactory a été enregistré. Il me manquait l'appel à AddFacility(). Merci! – shovavnik
Notez que 'FactorySupportFacility' n'est plus nécessaire à partir de Windsor 2.5 (hourra!) –
Merci beaucoup pour ça - ça me rendait fou! J'utilise une version plus récente de Windsor pour une solution différente et je ne me suis pas rendu compte que cela est nécessaire pour une version plus ancienne de Windsor. –