using Autofac; using Autofac.Extensions.DependencyInjection; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Configuration; using QYZH.InteractiveMagazine.Models.Settings; using RabbitMQ.Client; using StackExchange.Redis; namespace QYZH.InteractiveMagazine.Infrastructure.Autofacs { public static class AutofacExtension { /// /// 根据程序集名称获取程序集 /// /// Web应用程序构建器 public static void UseAutofac(this WebApplicationBuilder builder) { builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()) .ConfigureContainer((c, containerBuilder) => { var friendlyName = AppDomain.CurrentDomain.FriendlyName; var source = friendlyName.Split('.'); var assemblyNames = string.Join(".", source.Take(source.Length - 1)); containerBuilder.RegisterModule(new AutofacModuleRegister(assemblyNames)); }); } } }