Ninject提供了将绑定分离为模块的便捷方式,以及 @Override
public void onResume(){
super.onResume();
if(thereIsAnIncomingMessage)
invalidateOptionsMenu();
}
的{{1}}方法,以获取给定类型的所有实例。
我有多个模块注册了多个实现相同类型的类,例如:
GetAll<T>()
在已加载IResolutionRoot
的内核中加载interface IFoo { }
class FooA : IFoo { } // in Module1
class FooB : IFoo { } // in Module2
class FooC : IFoo { } // in Module2
后,是否可以通过请求FooC
来仅检索IFoo
的实例?
类似的东西:
Module2
我唯一想到的是通过Module1
获取所有已注册的绑定。但是,如何检索实例?
StandardKernel kernel = new StandardKernel(new Module1()); // Module1 registered
Module2 module2 = new Module2();
kernel.Load(module2);
// kernel.GetAll<IFoo>().Where( ... from Module2 ... );
我知道这里也提出了类似的问题:Ninject GetAll Where Module = foo
但是不可能利用模块公开的Module2
成员吗?