我现在正在开发一个MVC3 Web应用程序,遇到了Ninject的一个新问题。
我在我的控制器中使用以下代码:
我的 Ninject 模块:
然而,当我尝试呈现Index视图时,它只是抛出了“System.MissingMethodException:未为此对象定义无参数构造函数。”的错误。
如果我接着添加:
所以我的实际 TestController 看起来像这样:
它可以工作,但正如您所看到的,新的构造函数基本上破坏了IoC的整个重点。
我该如何修复这个问题?
提前致谢。
我在我的控制器中使用以下代码:
public class TestController : Controller
{
public IRepository<CustomerModel> rep;
public TestController(IRepository<CustomerModel> repository)
{
this.rep = repository;
}
public ActionResult Index()
{
return View();
}
}
我的 Ninject 模块:
public class RepositoryModule : NinjectModule
{
public override void Load()
{
Bind(typeof(IRepository<>)).To(typeof(Repository<>));
}
}
然而,当我尝试呈现Index视图时,它只是抛出了“System.MissingMethodException:未为此对象定义无参数构造函数。”的错误。
如果我接着添加:
public TestController() : this(new Repository<CustomerModel>(new XenCRMEntities())) { }
所以我的实际 TestController 看起来像这样:
public class TestController : Controller
{
public IRepository<CustomerModel> rep;
public TestController() : this(new Repository<CustomerModel>(new XenCRMEntities())) { }
public TestController(IRepository<CustomerModel> repository)
{
this.rep = repository;
}
public ActionResult Index()
{
return View();
}
}
它可以工作,但正如您所看到的,新的构造函数基本上破坏了IoC的整个重点。
我该如何修复这个问题?
提前致谢。