title: Bind multiple implementations to the same interface with ninject
body: <p>Why is it not possible for me to do the following in Ninect?</p>
  
  <pre><code>Kernel.Bind&lt;IPresenter&gt;.To&lt;DefaultPresenter&gt;();
  Kernel.Bind&lt;IPresenter&gt;.To&lt;DashboardPresenter&gt;();
  Kernel.Bind&lt;IPresenter&gt;.To&lt;HeartRatePresenter&gt;();
  Kernel.Bind&lt;IPresenter&gt;.To&lt;GPSPresenter&gt;();
  </code></pre>
  
  <p>Each of the 4 implementations have a different constructor that expect a different type. When i attempt this, Ninject throws an exception telling me that i cannot bind to the same interface more than once.</p>
  
  <p>In a class called <code>Presentable</code> which all presenter classes inherit from, I am attempting to do <code>Kernel.Get&lt;IPresenter&gt;(new ConstructorArgument("view", this))</code> so assign <code>IPresentable Presenter</code> within the page/view where the page/view implements an interface that the presenter expects as a parameter.</p>
  
  <p>What is a way around this so that ninject recognises different constructor parameter types?</p>