调用标准内核GetProvider

本文关键字:GetProvider 内核 标准 调用 | 更新日期: 2023-09-27 18:04:22

我试图获得将实现接口的类的FullName。我使用StandardKernel

Kernel = new StandardKernel();

但是我似乎不能得到我想要的信息,因为

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

GetProvider()需要一个IContext,我不知道从哪里得到它…

调用标准内核GetProvider

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

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();