gpt4 book ai didi

.net - 从 ninject 获取所有具体类型

转载 作者:行者123 更新时间:2023-12-04 20:19:45 25 4
gpt4 key购买 nike

ninject 有没有办法从绑定(bind)中获取具体类型?我不想实例化实现,只需获取类型。

我想做这样的事情

Type[] concreteTypes = Kernel.GetBindings(typeof(IController)).
GetImplementingTypes();

我的 Kernel只是一个 StandardKernel .

我想最终反射(reflection)这些类型。

最佳答案

唯一的方法是使用 kernel.GetAll<IController>() 获取所有实例. Ninject 没有设置绑定(bind)映射。当实例通过注入(inject)或获取调用解决时,将确定实现。这是因为 Ninject 允许条件绑定(bind)和隐式绑定(bind)。

如果你设置了一个 MVC3 应用程序,你实际上并没有注册你的 Controller ,因为 Ninject 将决定加载哪个 Controller 以及注入(inject)什么。它通过懒惰地创建一个隐式绑定(bind)来做到这一点。

最接近的方式是延长 StandardKernel并访问 protected 绑定(bind)集并找到所有非条件绑定(bind)。一旦你拥有了所有的非条件绑定(bind),你也许可以拆开绑定(bind),但我记不起来了,因为它们可能隐藏在 StandardProvider 后面。类(class)。

您在做什么需要知道特定接口(interface)的确切绑定(bind)配置?

关于.net - 从 ninject 获取所有具体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7916088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com