title: Best way to bind an interface to the result of another binding
body: <p>Let's say I have the following interface and class:</p>
  
  <pre><code>public interface IMyService
  {
      void DoSomething();
  }
  
  public class MagicInterfaceImplementor&lt;T&gt;
  {
      public T GetImplementation()
      {
          // Not relevant.
      }
  }
  </code></pre>
  
  <p>The only way to get an instance of <code>IMyService</code> is through <code>MagicInterfaceImplementor&lt;IMyService&gt;</code>.  I can obviously setup injection pretty easily for <code>MagicInterfaceImplementor&lt;IMyService&gt;</code>:</p>
  
  <pre><code>Bind&lt;MagicInterfaceImplementor&lt;IMyService&gt;().ToSelf();
  </code></pre>
  
  <p>[Strictly, this isn't necessary in this particular instance, but I'm doing a bit more with the binding in the actual case.]</p>
  
  <p>My question is - how do I bind <code>IMyService</code>?</p>
  
  <p>I think I can do this, but I'm not sure that it's the best way, since I'm explicitly calling the Kernel, which is typically frowned upon:</p>
  
  <pre><code>Bind&lt;IMyService&gt;().ToMethod(context =&gt; {
      return ((MagicInterfaceImplementor&lt;IMyService&gt;)
              context.Kernel.GetService(typeof(MagicInterfaceImplementor&lt;IMyService&gt;)))
                  .GetImplementation();
  });
  </code></pre>
  
  <p>Any suggestions of a more proper way to do this would be appreciated.</p>