Program.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using Autofac;
  2. using Autofac.Extensions.DependencyInjection;
  3. using CSRedis;
  4. using Microsoft.OpenApi.Models;
  5. using Serilog;
  6. using wms.api.autofac;
  7. using wms.api.Filter;
  8. using wms.service.mapper;
  9. var builder = WebApplication.CreateBuilder(args);
  10. // Add services to the container.
  11. builder.Services.AddControllers();
  12. // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
  13. builder.Services.AddEndpointsApiExplorer();
  14. builder.Services.AddCors(options =>
  15. {
  16. options.AddPolicy(name: "cors", builders => builders.AllowAnyOrigin().AllowAnyHeader().WithMethods("GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS"));
  17. });
  18. builder.Services.AddSwaggerGen(c =>
  19. {
  20. c.SwaggerDoc("v1", new OpenApiInfo
  21. {
  22. Title = "WMS接口文档",
  23. Version = "1.0",
  24. Description = "WMS接口文档"
  25. });
  26. var file = Path.Combine(AppContext.BaseDirectory, "wms.api.xml"); // xml文档绝对路径
  27. var file1 = Path.Combine(AppContext.BaseDirectory, "wms.dto.xml");
  28. var path = Path.Combine(AppContext.BaseDirectory, file);
  29. var path1 = Path.Combine(AppContext.BaseDirectory, file1);
  30. c.IncludeXmlComments(path, true); // true : 显示控制器层注释
  31. c.IncludeXmlComments(path1, true); // true : 显示dto注释
  32. c.OrderActionsBy(o => o.RelativePath);
  33. });
  34. builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
  35. builder.Host.ConfigureContainer<ContainerBuilder>(containerBuilder =>
  36. {
  37. containerBuilder.RegisterModule(new AutofacModuleRegister());
  38. });
  39. builder.Host.UseSerilog((context, logger) =>
  40. {
  41. logger.ReadFrom.Configuration(context.Configuration);
  42. logger.Enrich.FromLogContext();
  43. });
  44. builder.Services.AddControllersWithViews(options =>
  45. {
  46. options.Filters.Add<LogFilter>();
  47. });
  48. builder.Services.AddSingleton(new wms.util.AppSettings(builder.Configuration));
  49. RedisHelper.Initialization(new CSRedisClient(builder.Configuration["CSRedisConnectString"]));
  50. builder.Services.AddAutoMapper(typeof(WmsPrifile));
  51. var app = builder.Build();
  52. // Configure the HTTP request pipeline.
  53. if (app.Environment.IsDevelopment())
  54. {
  55. }
  56. app.UseSwagger();
  57. app.UseSwaggerUI();
  58. //app.UseHttpsRedirection();
  59. app.UseCors("cors");
  60. app.UseRouting();
  61. app.UseAuthorization();
  62. app.MapControllers();
  63. app.Run();