依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。具体含义是:当某个角色需要另一个角色(另一个实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在MVC里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由ContainerBuilder容器来完成,然后注入调用者,因此也称为依赖注入。
下面是怎么实现注入代码:
protected void Application_Start(){
gHelper.RegisterLog4Config();
var builder = new ContainerBuilder();builder.RegisterModule(new GuidedPlanModule());
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
控制器中就可以方便的使用注入的Object了
#region fields and structure
private IGuidedPlanService meClass;
public GuidedPlanController(IMeClassiMeClass)
{
this.meClass= iMeClass;
}
.......................
#endregion