当我使用这个注册时:
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)
我在这里需要某种代理吗?
是不是注册错了?
从消息来看您似乎还没有注册IFooFactory
.
您还需要添加对工厂方法的支持。只需在注册之前调用此方法即可:
container.AddFacility<Castle.Facilities.FactorySupport.FactorySupportFacility>();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)