zoukankan      html  css  js  c++  java
  • NetCore学习 (1)--添加autofac 第三方Ioc

    1.引用  组件 Autofac.Extensions.DependencyInjection

    2.program.cs 中添加   

    UseServiceProviderFactory(new AutofacServiceProviderFactory())
    
    
    public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args).UseServiceProviderFactory(new AutofacServiceProviderFactory())
    .ConfigureWebHostDefaults(webBuilder =>
    {
    webBuilder.UseStartup<Startup>();
    });
    }
    

    3.startup 里添加注入 容器(一般用程序集整个注入比较合适)

      public void ConfigureContainer(ContainerBuilder builder)
            {
                //方式二 扫描程序集, RegisterAssemblyTypes接收包含一个或多个程序集的数组作为参数. 默认地, 程序中所有具体的类都将被注册. 
                var asm = Assembly.Load("MvcService");//指定dll名称的程序集集
                var defulatAsm = Assembly.GetExecutingAssembly();//默认执行的dll
                builder.RegisterAssemblyTypes(asm, defulatAsm)
                    .PublicOnly()//仅注册public的方法
                    .Where(t => t.Name.EndsWith("Service"))//可以在这里写一些过滤类名规则
                    .AsImplementedInterfaces();
                RegisterContainerBuilder(builder);
            }
    

    4.也可以单独注入某个类

            public void RegisterContainerBuilder(ContainerBuilder builder)
            {
                builder.RegisterType<PriceLogic>();
            }
    

      

  • 相关阅读:
    vector在堆上还是在栈上(等待自己慢慢领悟吧)
    函数指针遇到typedef
    回调函数的代码示例
    _T和_L的区别
    MFC打开文件夹对话框
    C++中的抽象类和接口类
    UML图中继承和实现的区别
    扩展点(ExtensionPoint)
    组播(又称多播)是个好东西
    C++代码实现组播及归纳的流程图
  • 原文地址:https://www.cnblogs.com/kaikaichao/p/14136884.html
Copyright © 2011-2022 走看看