如何从Ninject内核中加载的模块中获取所有实例?

时间:2016-07-13 15:22:12

标签: c# ninject

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成员吗?

0 个答案:

没有答案