using Autofac; using Autofac.Extensions.DependencyInjection; using CSRedis; using Microsoft.OpenApi.Models; using Serilog; using wms.api.autofac; using wms.api.Filter; using wms.service.mapper; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddCors(options => { options.AddPolicy(name: "cors", builders => builders.AllowAnyOrigin().AllowAnyHeader().WithMethods("GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS")); }); builder.Services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "WMS接口文档", Version = "1.0", Description = "WMS接口文档" }); var file = Path.Combine(AppContext.BaseDirectory, "wms.api.xml"); // xml文档绝对路径 var file1 = Path.Combine(AppContext.BaseDirectory, "wms.dto.xml"); var path = Path.Combine(AppContext.BaseDirectory, file); var path1 = Path.Combine(AppContext.BaseDirectory, file1); c.IncludeXmlComments(path, true); // true : 显示控制器层注释 c.IncludeXmlComments(path1, true); // true : 显示dto注释 c.OrderActionsBy(o => o.RelativePath); }); builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()); builder.Host.ConfigureContainer(containerBuilder => { containerBuilder.RegisterModule(new AutofacModuleRegister()); }); builder.Host.UseSerilog((context, logger) => { logger.ReadFrom.Configuration(context.Configuration); logger.Enrich.FromLogContext(); }); builder.Services.AddControllersWithViews(options => { options.Filters.Add(); }); builder.Services.AddSingleton(new wms.util.AppSettings(builder.Configuration)); RedisHelper.Initialization(new CSRedisClient(builder.Configuration.GetConnectionString("CSRedisConnectString"))); builder.Services.AddAutoMapper(typeof(WmsPrifile)); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { } app.UseSwagger(); app.UseSwaggerUI(); //app.UseHttpsRedirection(); app.UseCors("cors"); app.UseRouting(); app.UseAuthorization(); app.MapControllers(); app.Run();