zoukankan      html  css  js  c++  java
  • .net Core Autofac稍微高级一点的方法

    前情摘要

    前段时间写了autofac的注入但是每次都需要去修改startup这应该不是大家想要的。

    至少不是我想要的。

    网上有朋友说可以创建一个基础类来时间。

    好了吹牛时间结束我们开始干点正事。

    创建Autofac-Base类

    对对对。在网站项目下创建一个文件夹,名字Autofac

    然后创建一个类 Base (创建类的快捷键ctrl+alt+a)

    然后就变成了这个样子

    Base.cs代码如下(因为使用了另外一个项目所以说和上一篇的interface对不上大家自行修改下。)

        public class Base : Module
        {
            protected override void Load(ContainerBuilder builder)
            {
                //注入测试服务
                builder.RegisterType<Infrastructure.Repositories.UserInfoRepository>().As<Core.Interfaces.IUserInfoRepository>();
                builder.RegisterType<Infrastructure.Repositories.CaseInfoRepository>().As<Core.Interfaces.ICaseInfoRepository>();
    
            }
        }

    修改Startup代码

    这是原来的样子

        public void ConfigureServices(IServiceCollection services)

    我们要改成这个样子

            public IContainer ApplicationContainer { get; private set; }
            // This method gets called by the runtime. Use this method to add services to the container.
            public IServiceProvider ConfigureServices(IServiceCollection services)
            {
                //返回的void 修改为 IServiceProvider 这是为了让第三方Ioc容易接管通道 具体在第几层怎么实现我没有深入研究  
                services.AddMvc();
                var builder = new ContainerBuilder();//实例化 AutoFac  容器            
                builder.Populate(services);//管道寄居
                builder.RegisterModule<AutofacModule.Base>();//使用Module 重写的方式配置 就不需要每次都来修改Startup文件了。后期打算改成json的。
                //builder.RegisterType<AutofaceTest.Service.Service.UserService>().As<Service.Interface.IUserService>();//UserService注入到IUserService
                ApplicationContainer = builder.Build();//IUserService UserService 构造
                return new AutofacServiceProvider(ApplicationContainer);//将autofac反馈到管道中
            }

    使用高级属性全注入方式

    这里我今儿又偷懒不想写了。呵呵。。2018-09-28 不写了 09-29写吧。

    结尾

    我就是写一下目录。 明儿再写。

  • 相关阅读:
    2013 蓝桥杯B组C++
    Kruskal 算法 && Kruskal 重构树
    并查集与其优化(启发式合并、压缩路径)
    【2021 首祭】一周晴天
    Docker以过时,看Containerd怎样一统天下
    史上最全的Nginx配置文档
    Windows环境Android studio运行RN项目,Node突然闪退
    solr docker 配置
    腾讯2017暑期实习生编程题详解
    华为2016研发工程师编程题详解
  • 原文地址:https://www.cnblogs.com/Extnet/p/9708439.html
Copyright © 2011-2022 走看看