AutoFac 入门 简单使用

第一步:添加引用

 在运行程序下引用AutoFac,通过NuGet导入包.  此处注意:根据项目结构使用AutoFac,如:mvc 应使用AutoFac.Mvc

第二步:在运行程序下添加一个类,mvc应添加在App_Start文件夹中. 并创建一个静态方法,例:

 public static void getInstance() {

        var container = new ContainerBuilder();

      //此处写法为注入接口写法,其余写法可自行百度

        container.RegisterType<SupplierInfoBLL>().AsImplementedInterfaces();

        container.RegisterType<SupplierTypeBLL>().AsImplementedInterfaces();

      //此处为Bll层的AutoFacModule调用,newBllModule为bll层类,为解决调用Dal的解耦依赖

       container.RegisterModule(newBllModule()); 

       //此句必须在下句之上

        container.RegisterControllers(Assembly.GetExecutingAssembly());

        var bulid = container.Build();

        //此句必须在上句之下

       DependencyResolver.SetResolver(new AutofacDependencyResolver(bulid));

第三步:在BLL层,Dal层分别添加一个Module类

//BLL层 创建一个类继承自Module,并重写Load方法

protected override void Load(ContainerBuilder builder){

  builder.RegisterType<SupplierInfoDAL>().AsImplementedInterfaces().InstancePerLifetimeScope();

 builder.RegisterType<SupplierTypeDAL>().AsImplementedInterfaces().InstancePerLifetimeScope();

//此处调用Dal中Module

 builder.RegisterModule(new AutoFacDalModule());


//DAL层 创建一个类继承自Module,并重写Load方法

  protected override void Load(ContainerBuilder builder){

 //此处DBContext 为数据上下文对象; 此处写法为注入类写法       

  builder.RegisterType<DBContext>();



第四步:修改项目中对bll,dal,db数据上下文对象的使用

//UI层,调用BLL层修改

private readonly IBLL<DTOSupplierInfo> _supplierInfoBll;

 private readonly IBLL<DTOSupplierType> _supplierTypeBll;

 public SupplierExtjsController(IBLL<DTOSupplierInfo> supplierInfoBll, IBLL<DTOSupplierType> supplierTypeBll){

_supplierInfoBll = supplierInfoBll;

_supplierTypeBll = supplierTypeBll;



//BLL层,调用DAL层修改

//SupplierInfoBLL

        private readonly IDAL<SupplierInfo> _supplierInfoDal;

public SupplierInfoBLL(IDAL<SupplierInfo> supplierInfoDal){

         _supplierInfoDal = supplierInfoDal;


//SupplierTypeBLL

        private readonly IDAL<SupplierType> _suppliertypeDal;

public SupplierTypeBLL(IDAL<SupplierType> supplierTypeDal){

       _suppliertypeDal = supplierTypeDal;



//DAL层,调用DB对象修改

//SupplierInfoDAL

private readonly DBContext _dbContext;

 public SupplierInfoDAL(DBContext dbContext){

        _dbContext = dbContext;


//SupplierTypeDAL

private readonly DBContext _dbContext;

 public SupplierTypeDAL(DBContext dbContext){

        _dbContext = dbContext;


第五步:全局应用文件Global.asax.cs中配置

 AutoFacConfig.getInstance();   //AutoFacConfig为第二步中定义的类,getInstance为;类中放置配置的方法


(该例子所用项目为工厂模式项目)

注:反射类(例:AutuFacConfig类)必须定义在controller所在项目下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值