title: Ninject Rebind at runtime, can it be used as a feature toggle?
body: <p>Firstly my question applies only to web apps and I tend to set up the majority of my Ninject bindings with an InRequestScope resolution.</p>
  
  <p>I'm thinking of ways to get feature toggling, and one thought that I have is to call:</p>
  
  <pre><code>kernel.Rebind&lt;IInterface&gt;().To&lt;RealImplementation&gt;().InRequestScope();
  </code></pre>
  
  <p>while the website is still up and running, and the switch has been flicked. If I then decide to turn the feature off I could call</p>
  
  <pre><code>kernel.Rebind&lt;IInterface&gt;().To&lt;EmptyImplementation&gt;().InRequestScope();
  </code></pre>
  
  <p>My thinking is that the InRequestScope would protect any "in progress" code requests, but will allow new requests to get the newly toggled feature. </p>
  
  <p>Does anyone know from experience (or a deeper understanding of Ninject) if this is likely to work, or if it's going to cause more trouble for me. I've superficially looked at MEF so that'll be my next port of call if Ninject isn't the best tool for the job in this case.</p>