zoukankan      html  css  js  c++  java
  • .net mvc web api Autofac依赖注入框架-戈多编程

    今天自己搭了一套基于三层的依赖注入mvc web api 的依赖注入框架,在此总结下相关配置

    1.设置应用程序的.net Framework版本为 4.5

    2.通过Nuget 安装autofac包

    Install-Package Autofac

    Install-Package Autofac.WebApi

    3.引用如下命名空间

    using Autofac;
    using Autofac.Integration.WebApi;
    using Autofac.Integration.Mvc;
    using System.Web.Mvc;

    4.再按照如下代码配置Autofac(分别搭建DAL、BLL、IDAL、IBLL)

    public static void Register()
    {
    var builder = new ContainerBuilder();
    HttpConfiguration configuration = GlobalConfiguration.Configuration;
    var assemblyList = AppDomain.CurrentDomain.GetAssemblies();


    builder.RegisterWebApiFilterProvider(configuration);




    //var iServices = Assembly.Load("IOC.IBLL");
    //var services = Assembly.Load("IOC.BLL");
    //var iRepository = Assembly.Load("IOC.IDAL");
    //var repository = Assembly.Load("IOC.DAL");

    //builder.RegisterAssemblyTypes(iServices, services)
    // .Where(t => t.Name.EndsWith("Service"))
    // .AsImplementedInterfaces();

    //var test = builder.RegisterAssemblyTypes(iRepository, repository)
    // .Where(t => t.Name.EndsWith("Dal"))
    // .AsImplementedInterfaces();


    builder.RegisterAssemblyTypes(assemblyList)
    .Where(t => t.Name.EndsWith("Service") || t.Name.EndsWith("Dal"))
    .AsImplementedInterfaces();

    builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); //注册所有controller
    builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); //注册所有apicontroller

    var container = builder.Build();

    configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);//注册api容器
    DependencyResolver.SetResolver(new AutofacDependencyResolver(container));//注册mvc容器
    }

    5.在Application_Start里调用 AutofacConfig.Register();

    6.然后在每一层采用构造函数依赖注入方式。

  • 相关阅读:
    架构师是怎么炼成的?
    互联网架构
    软件质量属性之可测试性
    用百度 AI Studio完成猫狗识别
    【2021.02.22】智能家居之门窗传感器与人体传感器
    【2021.02.21】逻辑斯蒂回归、处理多维特征的输入
    【2020.02.20】树莓派3B安装home assistant全过程
    【2020.02.18】反向传播、线性回归
    【2021.02.17】线性模型、梯度下降算法
    【2021.02.16】pytorch导论
  • 原文地址:https://www.cnblogs.com/geduocoding/p/7364709.html
Copyright © 2011-2022 走看看