zoukankan      html  css  js  c++  java
  • Asp.net Core3.1使用Autofac

    安装Autofac

    Program文件中加入UseServiceProviderFactory

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

    Startup 文件 ConfigureServices方法添加:

            services.Replace(
       ServiceDescriptor
           .Transient<IControllerActivator, ServiceBasedControllerActivator>()
    );

    添加ConfigureContainer方法

     public void ConfigureContainer(ContainerBuilder builder)
            {
    
                var assembly1= Assembly.GetAssembly(typeof(BaseService));
                var assembly2 = Assembly.GetExecutingAssembly();
                builder.RegisterAssemblyTypes(assembly1)
                    .PublicOnly()
                    .Where(r => r.Name.EndsWith("Service"))
                    .AsImplementedInterfaces()
                    .PropertiesAutowired()
                    .InstancePerLifetimeScope();
                builder.RegisterType<HttpContextAccessor>().As<IHttpContextAccessor>();
                var controllersTypesInAssembly = typeof(Startup).Assembly.GetExportedTypes()
            .Where(type => typeof(Microsoft.AspNetCore.Mvc.ControllerBase).IsAssignableFrom(type)).ToArray();
                builder.RegisterTypes(controllersTypesInAssembly).PropertiesAutowired();
            }
  • 相关阅读:
    decltype类型指示符
    vector的使用
    参数使用
    CSPS模拟 43
    CSPS模拟 41
    CSPS模拟 42
    NOIP模拟 40
    NOIP模拟 39
    NOIP模拟 38
    NOIP模拟 37
  • 原文地址:https://www.cnblogs.com/tangchun/p/15359530.html
Copyright © 2011-2022 走看看