Проблема, с которой вы столкнулись, состоит в том, что Ninject выбирает .ctors на основе количества доступных ему связанных параметров. Это означает, что Ninject принципиально не понимает перегрузки.
Вы можете обойти эту проблему, используя функцию .ToConstructor () в своих привязках и комбинируя ее с функцией .Named (). Это позволяет создавать несколько привязок для одного и того же класса к разным конструкторам с разными именами. Это немного глупо, но это работает.
Я веду свой собственный блог по разработке программного обеспечения, так что в конечном итоге это была его публикация. Если вам нужен пример кода и немного больше объяснений, вы должны проверить его.
http://www.nephandus.com/2013/05/10/overloading-ninject/