using Autofac; using Autofac.Extensions.DependencyInjection; using KH.WMS.Core.AOP; using KH.WMS.Core.Api.Documentation.Swagger; using KH.WMS.Core.DependencyInjection; using KH.WMS.Core.Logging.Serilog; using KH.WMS.Core.Monitoring.MiniProfiler; using KH.WMS.Core.Setup; using KH.WMS.TestProj; using StackExchange.Profiling; using Swashbuckle.AspNetCore.SwaggerUI; var builder = WebApplication.CreateBuilder(args); // 配置 Serilog 日志 builder.Host.AddSerilog( appName: "KH.WMS", logDirectory: "Logs", retentionDays: 30, maxFileSizeMB: 5); builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()).ConfigureContainer(builder => { builder.RegisterModule(new ServiceExtensions());//带有接口层的服务注入 }); // 添加 HttpContextAccessor(用于日志中获取用户信息) builder.Services.AddHttpContextAccessor(); builder.Services.AddInfrastructure(builder.Configuration, builder.Environment); // Add services to the container. builder.Services.AddControllers(); builder.Services.AddRazorPages(); // MiniProfiler UI 可能需要 builder.Services.AddEndpointsApiExplorer(); var app = builder.Build(); app.UseCustomMiddleware(app.Environment); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwaggerDocumentation(builder.Configuration); } app.Run();