依赖注入总结
A类实例化的时候需要一个B的对象作为构造函数的参数,那么A就依赖B,这就叫依赖。
当然,不用构造函数的方式,在A类内部去new一个B,其实也是一样存在A依赖B。
mvc5里在Global.asax中加入依赖注入的注册代码
//Autofac依赖注入
var builder = new ContainerBuilder();
Type baseType = typeof(IService);
var assembly = AppDomain.CurrentDomain.GetAssemblies().ToList();//获取所有程序集
//注册 继承或间接继承Iservice 的所有类和接口
builder.RegisterAssemblyTypes(assembly.ToArray()).Where(t => baseType.IsAssignableFrom(t) && t != baseType).AsImplementedInterfaces().InstancePerLifetimeScope();
builder.RegisterControllers(typeof(MvcApplication).Assembly);//注册控制器
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));//这句最重要,提供注入点
IService为接口基类,所有需要注册的接口要继承它