title: Rebind indirect depdendency with ninject childkernel
body: <p>I am using Ninject and Ninject.Extensions.ChildKernel</p>
  
  <p>I have the following interfaces <code>IService</code> and <code>IServiceProvider</code></p>
  
  <p>My <code>IServiceProvider</code> implementation takes an <code>IService</code> instance</p>
  
  <pre><code>public interface IServiceProvider
  {
      IService Service { get; }
  }
  public class ServiceProvider : IServiceProvider
  {
      public ServiceProvider(IService service)
      {
          this.Service = service;
      }
      public IService Service { get; private set; }
  }
  </code></pre>
  
  <p>Now I do the following</p>
  
  <pre><code>var container = new StandardKernel();
  container.Bind&lt;IService&gt;().To&lt;Service&gt;();
  container.Bind&lt;IServiceProvider&gt;.To&lt;ServiceProvider&gt;();
  
  // later in code
  var child = new ChildKernel(container);
  child.Bind&lt;IService&gt;().To&lt;ChildService&gt;();
  
  var provider = child.Get&lt;IServiceProvider&gt;();
  var serviceA = provider.Service;      // &lt;-- Service
  var serviceB = child.Get&lt;IService&gt;(); // &lt;-- ChildService
  </code></pre>
  
  <p>As you can see <code>child.Get&lt;IService&gt;()</code> works as expected and returns ChildService but I also want every instance of IServiceProvider contructed with the child kernel to use ChildService. Is this possible with <code>Ninject.Extensions.ChildKernel</code></p>
  
  <p>Please note: I already posted this on the <code>Ninject.Extensions.ChildKernel</code> <a href="https://github.com/ninject/Ninject.Extensions.ChildKernel/issues/9" rel="nofollow">issue tracker</a> but I am not even sure if this is an issue or I am just using it wrong. </p>