title: Ninject dependency injection with Decorator pattern
body: <p>Say, I have such classes hierarchy:</p>
  
  <pre><code>public interface IRepository { }
  
  public class SomeSimpleRepository : IRepository {}
  </code></pre>
  
  <p>Now I want to "decorate" SomeSimpleRepository with additional functions</p>
  
  <pre><code>public class MoreAdvancedRespository : IRepository 
  { 
      private readonly IRepository _originalRepository;
  
      public MoreAdvancedRespository(IRepository original) 
      { }
  }
  </code></pre>
  
  <p>After awhile another one..</p>
  
  <pre><code>public class TrickyRepository : IRepository
  {
      private readonly IRepository _originalRepository;
  
      public TrickyRepository (IRepository original) 
      { }
  }
  </code></pre>
  
  <p>Now, I need to accomplish binding. In application I need the instance of TrickyRepository, to be initialized with MoreAdvancedRespository. So, I need to write something like:</p>
  
  <pre><code>Bind&lt;IRepository&gt;().To&lt;TrickyRepository&gt;.With ??
  </code></pre>
  
  <p>Here I'm confused, I need somehow to say, take MoreAdvancedRespository but initialize it with SomeSimpleRepository. This is a kind of chain of dependencies that have to be resolved against one interface.</p>
  
  <p>Does any one have suggestion on this?</p>