C# Ninject Func澄清
有人能帮我理解下面的陈述吗C# Ninject Func澄清,c#,C#,有人能帮我理解下面的陈述吗 kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => ctx.Kernel) kernel.Bind().ToMethod(ctx=>()=>ctx.kernel) 上面的代码做什么 什么是Func 它是否试图将IKernel绑定并连接到某个东西上。。。?这一部分让我很困惑: ().ToMethod(ctx=>()=>ctx.Kernel) 我知道kernel.bind用于将接口绑
kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => ctx.Kernel)
kernel.Bind().ToMethod(ctx=>()=>ctx.kernel)
().ToMethod(ctx=>()=>ctx.Kernel
)DIContainer
,每当有人向DIContainer
请求Func
时,返回当前上下文的内核的函数
看一看
那么,什么是Func
发件人:
封装一个没有参数且返回值为的方法
TResult参数指定的类型
你应该调查一下 看起来像
基本上,它告诉ninject的DIContainer
,每当有人向DIContainer
请求Func
时,返回当前上下文的内核的函数
看一看
那么,什么是Func
发件人:
封装一个没有参数且返回值为的方法
TResult参数指定的类型
你应该调查一下 顺便说一句:这与LINQ无关。仅供参考,这不是LINQ查询。ToMethod
方法采用Func
,其中T
是返回类型。代码ctx=>()=>ctx.Kernal
是一个Lambda表达式(),可以转换为Func
。lambda通常与Linq运算符一起使用,但您发布的代码不是Linq查询。顺便说一句:这与Linq无关。仅供参考,这不是Linq查询。ToMethod
方法采用Func
,其中T
是返回类型。代码ctx=>()=>ctx.Kernal
是一个Lambda表达式(),可以转换为Func
。lambda通常与Linq运算符一起使用,但您发布的代码不是Linq查询。谢谢,但还不清楚什么是Func和ctx。内核可以用简单的术语解释。Func
是泛型,而ctx=>()=>ctx.Kernel
是lambda表达式。这是干什么用的?ctx=>()=>ctx.kernel基本上它创建了一个新方法,其中一个参数类型为IContext
,返回类型为IKernel
。调用此方法时,将返回作为参数传递的对象的Kernel
属性。仍然不清楚,抱歉。IContext在什么时候出现?它如何适应现实世界的情况。基本上我为什么和什么时候使用这个函数。谢谢,但还不清楚什么是Func和ctx。内核可以用简单的术语来解释。Func
是泛型,而ctx=>()=>ctx。内核
是一个lambda表达式。谢谢,这是做什么的?ctx=>()=>ctx.kernel基本上它创建了一个新方法,其中一个参数类型为IContext
,返回类型为IKernel
。调用此方法时,将返回作为参数传递的对象的Kernel
属性。仍然不清楚,抱歉。IContext在什么时候出现?它如何适应现实世界的情况。基本上我为什么和什么时候使用这个函数。