zoukankan      html  css  js  c++  java
  • Autofac 中间件使用

    0-添加 Autofac.Extensions.DependencyInjection 引用

    1-NetCore 2.x 依赖注入模式

     1 # 返回类型 改成  IServiceProvider
     2 public IServiceProvider ConfigureServices(IServiceCollection services)
     3  {
     4 var builder = new ContainerBuilder();
     5             builder.Populate(services);
     6             builder.RegisterAssemblyTypes(Assembly.Load("GR.Interfaces"), Assembly.Load("GR.Services"))
     7               .AsSelf()
     8               .AsImplementedInterfaces()
     9               .InstancePerLifetimeScope()
    10               .PropertiesAutowired();
    11 
    12             var Container = builder.Build();
    13             return new AutofacServiceProvider(Container);
    14  }
    View Code

    2-NetCore 3.x 依赖注入模式

    2.1-Program 中添加 UseServiceProviderFactory(new AutofacServiceProviderFactory())

    1  public static IHostBuilder CreateHostBuilder(string[] args) =>
    2             Host.CreateDefaultBuilder(args)
    3                 .UseServiceProviderFactory(new AutofacServiceProviderFactory())//添加这行代码
    4                 .ConfigureWebHostDefaults(webBuilder =>
    5                 {
    6                     webBuilder.UseStartup<Startup>();
    7                 });
    View Code

    2.2-Startup 中添加方法 ConfigureContainer(ContainerBuilder builder)

     1 public void ConfigureContainer(ContainerBuilder builder)
     2         {
     3             ////过滤器注册
     4             //builder.RegisterAssemblyTypes(Assembly.Load("IoC.Web"))
     5             //     .Where(t => t.BaseType.FullName.Contains("Filter"))
     6             //     .AsSelf();
     7             //
     8 
     9             builder.RegisterAssemblyTypes(Assembly.Load("IoC.Application"),
    10                 Assembly.Load("IoC.Domain"))
    11                  .Where(x => typeof(IScopedDenpency).IsAssignableFrom(x) && !x.IsAbstract)
    12                 .AsSelf()
    13                 .AsImplementedInterfaces()
    14                 .InstancePerLifetimeScope()
    15                 .PropertiesAutowired();
    16 
    17             builder.RegisterAssemblyTypes(Assembly.Load("IoC.Application"),
    18                 Assembly.Load("IoC.Domain"))
    19             .Where(x => typeof(ISingletonDenpency).IsAssignableFrom(x) && !x.IsAbstract)
    20               .AsSelf()
    21               .AsImplementedInterfaces()
    22               .SingleInstance()
    23               .PropertiesAutowired();
    24 
    25 
    26             builder.RegisterAssemblyTypes(Assembly.Load("IoC.Application"),
    27                 Assembly.Load("IoC.Domain"))
    28               .Where(x => typeof(ITraintDenpency).IsAssignableFrom(x) && !x.IsAbstract)
    29               .AsSelf()
    30               .AsImplementedInterfaces()
    31               .InstancePerDependency()
    32               .PropertiesAutowired();
    33 
    34             //builder.RegisterAssemblyTypes(Assembly.Load("IoC.Application"), Assembly.Load("IoC.Domain"))
    35             //  .AsSelf()
    36             //  .AsImplementedInterfaces()
    37             //  .InstancePerLifetimeScope()
    38             //  .PropertiesAutowired();
    39         }
    View Code
  • 相关阅读:
    matrix
    meizi
    公文流转系统
    10.21连接数据库进行添加
    9.27
    9.23课堂总结
    信息管理java
    大道至简读后感
    第二周
    7.7第一周
  • 原文地址:https://www.cnblogs.com/ganqiyin/p/13204085.html
Copyright © 2011-2022 走看看