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

    结尾

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

  • 相关阅读:
    【bzoj2079】[Poi2010]Guilds 构造结论题
    【bzoj1899】[Zjoi2004]Lunch 午餐 dp
    【bzoj1345】[Baltic2007]序列问题Sequence 单调栈
    【bzoj1047】[HAOI2007]理想的正方形 二维RMQ
    【bzoj1044】[HAOI2008]木棍分割 二分+dp
    【bzoj5037】[Jsoi2014]电信网络 最大权闭合图
    【bzoj5018】[Snoi2017]英雄联盟 背包dp
    【bzoj5020】[THUWC 2017]在美妙的数学王国中畅游 泰勒展开+LCT
    【bzoj2213】[Poi2011]Difference dp
    【bzoj2161】布娃娃 权值线段树
  • 原文地址:https://www.cnblogs.com/Extnet/p/9708439.html
Copyright © 2011-2022 走看看