gpt4 book ai didi

ninject - 如何在 Ninject 中列出所有已注册的 IBinding?

转载 作者:行者123 更新时间:2023-12-02 14:30:08 25 4
gpt4 key购买 nike

我看到了枚举给定服务(类型)的绑定(bind)列表的方法,但我找不到返回已加载模块中绑定(bind)的所有内容列表的方法。我正在寻找类似Kernel::IEnumerable<IBinding> GetAllRegisteredBindings()的东西

这个存在吗?如果没有,我可以构建一个可以做到这一点的扩展吗?我需要能够在没有服务类型的情况下访问绑定(bind)...

最佳答案

我查看了代码,没有找到请求所有绑定(bind)的方法。如果您愿意修改它并使用修改后的代码,您可以执行以下操作:

到 IKernel.cs,添加:

    /// <summary>
/// Gets all registered bindings
/// </summary>
IEnumerable<IBinding> GetBindings();

到 KernelBase.cs,添加:

    /// <summary>
/// Gets all registered bindings
/// </summary>
public virtual IEnumerable<IBinding> GetBindings()
{
return _bindings.SelectMany( kvp => kvp.Value );
}

并重新编译。

使用:

    var bindings = Kernel.GetBindings();
bindings.ForEach( b => logger.DebugFormat( "Binding: {0} -> {1}", b.Service, b.Target ) );

关于ninject - 如何在 Ninject 中列出所有已注册的 IBinding?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3773036/

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