IoC和ASP.NET MVC控制器

Dan*_*ite 5 c# asp.net-mvc inversion-of-control

我应该按照这个方针做点什么吗?我在想我继承的所有控制器BaseController.这是否打破了IoC的设计模式?我还应该做些什么呢?

public class BaseController: Controller
{
    protected ICookieService CookieService {
        get {
            return ServiceResolver.Resolve<ICookieService>(new { HttpContext = HttpContext });
        }
    }
    protected IDateTimeService DateTimeService { 
        get {
            return ServiceResolver.Resolve<IDateTimeService>();
        }
    }
    protected ISettingsService SettingsService {
        get {
            return ServiceResolver.Resolve<ISettingsService>();
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

Yan*_*rtz 10

使用构造函数注入并让controllerfactory为您注入它会更简单.如果可以的话,如果可以使用构造函数注入,请不要使用服务定位器(ServiceResolver).

将控制器工厂添加到ASP MVC有一些信息

该链接显示了如何使用StructureMap进行操作,看起来您正在使用Unity,但它应该很容易适应.