Ninject Func澄清

时间:2012-06-14 11:25:18

标签: c#

请有人帮我理解下面的陈述:

kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => ctx.Kernel)
  1. 上面的代码是做什么的?
  2. Func是什么?
  3. 是否尝试绑定和接口IKernel ...?这部分让我很困惑: <Func<IKernel>>().ToMethod(ctx => () => ctx.Kernel
  4. 我知道kernel.bind用于将Interface绑定到Concrete类型,但不确定上面的内容,因为没有给出具体的类型。

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

    由于

1 个答案:

答案 0 :(得分:5)

看起来像ninject

基本上它会告诉ninject的DIContainer返回一个函数,只要有人问Kernel DIContainer,就会返回当前上下文的Func<IKernel>

看看here


那么,Func是什么?

来自the documentation at MSDN

  

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

您应该查看genericslambda expressions