Ninject StandardKernel GetProvider

时间:2013-03-18 11:48:30

标签: c# inversion-of-control ninject

我正在尝试获取将要实现该接口的类的FullName。我使用StandardKernel

Kernel = new StandardKernel();

但我似乎无法得到我想要的信息,因为

Kernel.GetBindings(type).FirstOrDefault().GetProvider() //ignore the pos. null for this example

GetProvider()需要一个IContext我无法弄清楚从哪里获取它...

1 个答案:

答案 0 :(得分:2)

奇怪的解决方案,但在一个简单的情况下为我工作:

var kernel = new StandardKernel();
kernel.Bind<IEnumerable>().To<Array>();
var kernelTarget = kernel.GetBindings(typeof(IEnumerable)).First ().ProviderCallback.Target;
var typeName = kernelTarget.GetType().GetField("prototype").GetValue(kernelTarget).ToString();