title: Context variables in Ninject 2
body: <p>I found <a href="http://kohari.org/2008/03/13/context-variables-in-ninject/" rel="nofollow">this article</a> on Context Variables in an earlier version of Ninject.  My question is two-fold. First, how can I get this behavior with Ninject 2? Secondly, do context variables carry through down the request chain? For example, let's say I wanted to replace these calls:</p>
  
  <pre><code>var a = new A(new B(new C())));
  var specialA = new A(new B(new SpecialC()));
  </code></pre>
  
  <p>... with this:</p>
  
  <pre><code>var a = kernel.Get&lt;A&gt;();
  var specialA = kernel.Get&lt;A&gt;(With.Parameters.ContextVariable("special", "true"));
  </code></pre>
  
  <p>Is it possible to set up a binding like this, where the context remembers that it is in a "special" context when it comes time to construct a <code>C</code>?</p>