Ninject Func clarification
本文关键字:clarification Func Ninject | 更新日期: 2023-09-27 18:37:04
有人可以帮我理解下面的陈述吗:
kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => ctx.Kernel)
- 上面的代码有什么作用?
- 什么是 Func?
- 它是否试图将 IKernel 绑定和接口到某些东西...?这部分真的让我感到困惑:
<Func<IKernel>>().ToMethod(ctx => () => ctx.Kernel
)
我知道 kernel.bind 用于将接口绑定到具体类型,但不确定上述内容,因为没有给出具体类型。
它如何适应现实世界的场景。基本上我为什么以及何时使用此功能
谢谢
看起来像ninject。
基本上,它告诉 ninject 的DIContainer
返回一个函数,每当有东西要求DIContainer
Func<IKernel>
时,返回当前上下文的Kernel
。
看看这里。
那么,什么是Func
?
来自 MSDN 的文档:
封装没有参数的方法,并返回值 由 TResult 参数指定的类型。
您应该查看泛型和 lambda 表达式。