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

    结尾

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

  • 相关阅读:
    liunx知识点滴积累(1)
    Regsvr32命令的使用
    QTP知识点滴积累
    LoadRunner的Apache的监控
    CMM和过程改进的“妙语” 集锦
    Linux 性能调优的几种方法
    数据库学习笔录(转载)
    Windows性能管理解析
    使用NUnit在.Net编程中进行单元测试
    Google 工程师文化 互助篇
  • 原文地址:https://www.cnblogs.com/Extnet/p/9708439.html
Copyright © 2011-2022 走看看