"没有为此对象定义的无参数构造函数"当使用MVC3和Ninject时

时间:2011-10-27 21:03:58

标签: asp.net-mvc binding dependency-injection 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 个答案:

答案 0 :(得分:1)

因为你提到使用NinjectControllerFactory我认为你使用的是不正确的实现。请考虑转而使用https://github.com/ninject/ninject.web.mvc/wiki/MVC3。这是Ninject和MVC3的广泛使用的集成。