Ninject Func clarification
<p>Could someone please help me to understand the statement below please:</p>

<pre><code>kernel.Bind&lt;Func&lt;IKernel&gt;&gt;().ToMethod(ctx =&gt; () =&gt; ctx.Kernel)
</code></pre>

<ol>
<li>What does above code do?</li>
<li>What is Func?</li>
<li>Is it trying to bind and Interface IKernel to something...? This part really confuses me:
<code>&lt;Func&lt;IKernel&gt;&gt;().ToMethod(ctx =&gt; () =&gt; ctx.Kernel</code>)</li>
</ol>

<p>I'm aware that kernel.bind is used to bind the Interface to Concrete type but not sure about the above as there's no concrete type given.</p>

<p>How does it fits in to the real world scenario. Basically why and when do I use this function</p>

<p>Thanks</p>
