我看到了枚举给定服务(类型)的绑定列表的方法,但是我找不到一个方法返回已加载模块中绑定的所有内容的列表.我正在寻找类似的东西Kernel::IEnumerable<IBinding> GetAllRegisteredBindings()
这存在吗?如果没有,我可以建立一个可以做到的扩展吗?我需要能够使用服务类型来获取绑定...
我查看了代码,没有找到请求所有绑定的方法。如果您愿意修改它并使用修改后的代码,您可以执行以下操作:
在 IKernel.cs 中添加:
/// <summary>
/// Gets all registered bindings
/// </summary>
IEnumerable<IBinding> GetBindings();
Run Code Online (Sandbox Code Playgroud)
在 KernelBase.cs 中添加:
/// <summary>
/// Gets all registered bindings
/// </summary>
public virtual IEnumerable<IBinding> GetBindings()
{
return _bindings.SelectMany( kvp => kvp.Value );
}
Run Code Online (Sandbox Code Playgroud)
并重新编译。
使用:
var bindings = Kernel.GetBindings();
bindings.ForEach( b => logger.DebugFormat( "Binding: {0} -> {1}", b.Service, b.Target ) );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4156 次 |
| 最近记录: |