«Для этого объекта не определен конструктор без параметров» при использовании MVC3 с Ninject

#asp.net-mvc #binding #dependency-injection #ninject

#asp.net-mvc #привязка #внедрение зависимостей #ninject

Вопрос:

Во-первых, вот код:

Привязка в NinjectControllerFactory

 class MrBigglesworthServices : NinjectModule
{
        public override void Load()
    {
        Bind<IAuthenticationRepository>()
            .To<AuthenticationRepository>()
            .WithConstructorArgument("connectionString",
                ConfigurationManager.ConnectionStrings["VoiceDB"].ConnectionString
                );

        Bind<IAppRepository>()
            .To<AppRepository>()
            .WithConstructorArgument("connectionString",
                ConfigurationManager.ConnectionStrings["SessionStore"].ConnectionString
                );
        }
    }
 

Конструктор для контроллера поиска:

 private IAppRepository appRepository;

public SearchController(IAppRepository appRepository)
{
    this.appRepository = appRepository;
}
 

Основываясь на том, что я видел в онлайн-примерах, этого должно быть достаточно, но по какой-то причине возникает ошибка, упомянутая выше. Есть предложения? Пожалуйста, и спасибо.

Ответ №1:

Поскольку вы упомянули использование a NinjectControllerFactory , я думаю, что вы используете неправильную реализацию. Подумайте о том, чтобы переключиться на https://github.com/ninject/ninject.web.mvc/wiki/MVC3 вместо этого. Это широко используемая интеграция Ninject и MVC3.