Ninject Func clarification

本文关键字:clarification Func Ninject | 更新日期: 2023-09-27 18:37:04

有人可以帮我理解下面的陈述吗:

kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => ctx.Kernel)
  1. 上面的代码有什么作用?
  2. 什么是 Func?
  3. 它是否试图将 IKernel 绑定和接口到某些东西...?这部分真的让我感到困惑: <Func<IKernel>>().ToMethod(ctx => () => ctx.Kernel

我知道 kernel.bind 用于将接口绑定到具体类型,但不确定上述内容,因为没有给出具体类型。

它如何适应现实世界的场景。基本上我为什么以及何时使用此功能

谢谢

Ninject Func clarification

看起来像ninject。

基本上,它告诉 ninject 的DIContainer返回一个函数,每当有东西要求DIContainer Func<IKernel>时,返回当前上下文的Kernel

看看这里。


那么,什么是Func

来自 MSDN 的文档:

封装没有参数的方法,并返回值 由 TResult 参数指定的类型。

您应该查看泛型和 lambda 表达式。