我正在使用NINject作为我的IOC创建一个MVC应用程序。我试图将我的业务逻辑与控制器分开。所以我不希望我的控制器构造函数为我的任何依赖对象创建,即我不想在构造函数中传递我的接口,而是通过IOC容器解析它。它应该是业务逻辑层的责任。我正在努力实现以下目标。
public BusinessHolidayController()
{
}
// GET: BusinessHoliday
public ActionResult Index(Product product)
{
string model = invoke<IProduct>().GetSum(product);
return View(model);
}
答案 0 :(得分:3)
您要做的就是倾向于服务定位器模式,这是反模式和危险模式。它的缺点大于它的优点。
有四种基本的DI模式 -
对于MVC控制器,您希望使用构造函数注入,因为它是上述四种模式的最佳模式,尤其是对于控制器。
它应该是业务逻辑层的责任。
没有。 Composite Root应该放在应用程序的入口点,例如Global.asax。