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写吧。

    结尾

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

  • 相关阅读:
    【生活没有希望】poj1273网络流大水题
    SPOJ FASTFLOW网络流水题
    【生活没有希望】hdu1166敌兵布阵 线段树
    【生活没有希望】NOIP2010初赛 烽火传递 smartoj1475
    【填坑向】bzoj2038小Z的袜子 莫队
    (RMQ版)LCA注意要点
    【填坑向】spoj COT/bzoj2588 Count on a tree
    bzoj4364: [IOI2014]wall砖墙
    【听说是线段树】bzoj1012 [JSOI2008]最大数maxnumber
    bzoj4196 [Noi2015]软件包管理器 树链剖分+线段树
  • 原文地址:https://www.cnblogs.com/Extnet/p/9708439.html
Copyright © 2011-2022 走看看