随着Ninject依赖注入容器自我约束,我可以进行自我约束的类似如下的方式:与温莎城堡在C#
MyClass mc = ninjectKernel.Get<MyClass>();
是否有在温莎城堡等效排序操作的?
随着Ninject依赖注入容器自我约束,我可以进行自我约束的类似如下的方式:与温莎城堡在C#
MyClass mc = ninjectKernel.Get<MyClass>();
是否有在温莎城堡等效排序操作的?
温莎城堡的相应呼叫(除非我在NInject中缺少一些错综复杂的功能)
MyClass mc = container.Resolve<MyClass>();
而且,正如你在评论中指出的那样,你需要注册这个课程,让它在温莎工作。
为了避免必须针对自己注册每个类,可以根据自己的基类在自己的某个程序集中注册多个类。例如,我使用以下来自我注册我所有的MVC控制器派生类: 'container.Register(Classes.FromThisAssembly()。BasedOn
按照约阿希姆伊萨克森的意见,这是我必须做的:
在安装程序:
container.Register(Component.For<MyClass>().ImplementedBy<MyClass>());
要解决:
MyClass mc = container.Resolve<MyClass>();
您不需要'.ImplementedBy
我不确定你指的是什么功能,但温莎的MyClass mc = container.Resolve();'表面上看起来会做同样的事情。 –
2012-03-02 13:17:57
Doh,很明显。谢谢。如果你想发布它,这看起来好像是对我的回答。为了使它起作用,我必须对它自己进行注册。 'container.Register(Component.For().ImplementedBy ());' –
2012-03-02 13:23:47
@JamesWiseman如果我记得没错的话,你可以节省一点自己的输入:'container.Register(Component.For());'when “for”类型的参数是一个类,没有“由...实现”调用,Windsor足够聪明,可以将该类注册为实现者。 –
phoog
2012-03-02 14:24:01