CSharp-Single-EFCore/Bunny.WebApi/Config/BaseConfig.cs

63 lines
1.9 KiB
C#

using Bunny.Common;
using Bunny.Common.Connect;
using Bunny.Service.WebSocket;
namespace Bunny.WebApi.Config;
public class BaseConfig(WebApplicationBuilder builder)
{
/// <summary>
/// 初始化
/// </summary>
public void Initialize()
{
// 配置跨域
UseCors();
// 配置日志相关
// builder.Logging.AddLog4Net("Config/log4net.config");
// 添加使用自定义配置文件
builder.Services.AddSingleton(new AppSettings(builder.Configuration));
// 添加 SignalR
builder.Services.AddSignalR();
builder.WebHost.ConfigureKestrel((context, options) =>
{
// 设置文件最大上传大小
options.Limits.MaxRequestBodySize = 1024 * 1024 * 100;
});
// 注入后台服务
builder.AddApplicationServices();
// 设置控制器返回时间,统一格式
builder.Services.AddControllers().AddJsonOptions(options =>
options.JsonSerializerOptions.Converters.Add(new JsonDateTimeConverter()));
// 添加后台服务
builder.AddApplicationBackendServices();
// 添加验证码
builder.AddCaptcha();
// 设置过滤器
builder.AddFilterConfigInitialize();
// 初始化Redis
builder.AddRedisContext();
// 初始化Minio
builder.AddMinioContext();
// 初始化 Knife4Net 文档
builder.AddKnife4Net();
// 启动 webSocket
builder.AddWebSocketInitial();
}
/// <summary>
/// 配置跨域
/// </summary>
private void UseCors()
{
// SignalR 配置跨域
builder.Services.AddSignalRCore();
// 配置跨域
builder.Services.AddCors(options =>
{
options.AddDefaultPolicy(policyBuilder => policyBuilder.WithOrigins("*")
.WithHeaders("*")
.WithMethods("*"));
});
}
}