using langguanApi.Common.Redis; using langguanApi.Extensions; using langguanApi.Extensions.AutoDI; using langguanApi.Middleware; using Microsoft.Extensions.Configuration; using Microsoft.OpenApi.Models; using System.Text.Json; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(options => { options.Filters.Add(); }).AddNewtonsoftJson(option => { option.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver(); option.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; }).AddJsonOptions(option => { option.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; }); //swagger builder.Services.AddSwaggerGen( options => { options.SwaggerDoc("v1", new OpenApiInfo() { Title = "Title", Version = "v1", Description = "Description", }); var path = Path.Combine(AppContext.BaseDirectory, "langguanApi.xml"); options.IncludeXmlComments(path, true); options.OrderActionsBy(_ => _.RelativePath); }); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); //redis var redisoptions = builder.Configuration.GetSection("Redis").Get(); if (redisoptions != null) { builder.Services.AddRedis(options => { options.Port = redisoptions.Port; options.Server = redisoptions.Server; options.Index = redisoptions.Index; options.Password = redisoptions.Password; options.Key = redisoptions.Key; }); } //自动注入 builder.Services.ServicesAutoInjectionExtension(); builder.Services.AddSocketService(); builder.Services.AddHttpClient(); //cross domain builder.Services.AddCors(options => { options.AddPolicy("CorsPolicy", builder => { builder.AllowAnyOrigin(); builder.AllowAnyMethod(); builder.AllowAnyHeader(); }); }); var app = builder.Build(); ServiceLocator.Instance = app.Services; // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseSwagger(); app.UseSwaggerUI(); app.UseCors("CorsPolicy"); //app.UseAuthorization(); app.MapControllers(); app.Run(); /// /// 暂存服务 /// public static class ServiceLocator { /// /// 服务容器 /// public static IServiceProvider Instance { get; set; } }