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

71 lines
1.9 KiB
C#
Raw Normal View History

2024-08-08 22:23:36 +08:00
using Bunny.Common;
using Bunny.Common.Connect;
2024-08-08 22:23:36 +08:00
using Bunny.Service.WebSocket;
namespace Bunny.WebApi.Config;
public class BaseConfig(WebApplicationBuilder builder)
2024-08-08 22:23:36 +08:00
{
/// <summary>
/// 初始化
2024-08-08 22:23:36 +08:00
/// </summary>
public void Initialize()
2024-08-08 22:23:36 +08:00
{
// 注入服务依赖、Host服务、插件等
AddApplicationService();
2024-08-08 22:23:36 +08:00
// 使用扩展第三方如Redis、Minio、SQLSugar
UseExtend();
2024-08-08 22:23:36 +08:00
// 配置跨域
UseCors();
2024-08-08 22:23:36 +08:00
}
/// <summary>
/// 注入控制器、服务依赖、Host服务等
/// </summary>
private void AddApplicationService()
2024-08-08 22:23:36 +08:00
{
// 配置日志相关
// builder.Logging.AddLog4Net("Config/log4net.config");
// 添加Service服务
builder.AddApplicationServices();
// 添加后台服务
builder.AddApplicationBackendServices();
// 添加使用自定义配置文件
2024-08-08 22:23:36 +08:00
builder.Services.AddSingleton(new AppSettings(builder.Configuration));
// 添加 SignalR
builder.Services.AddSignalR();
// 添加验证码
builder.AddCaptcha();
2024-08-08 22:23:36 +08:00
}
/// <summary>
/// 扩展服务
/// </summary>
private void UseExtend()
2024-08-08 22:23:36 +08:00
{
// 设置过滤器
FilterConfig.Initialize(builder);
// 初始化Redis
RedisContext.Initial();
// 初始化 Knife4Net 文档
2024-08-08 22:23:36 +08:00
Knife4Net.Initialize(builder);
// 启动 webSocket
2024-08-08 22:23:36 +08:00
WebSocketInitial.Start();
}
/// <summary>
/// 配置跨域
/// </summary>
private void UseCors()
2024-08-08 22:23:36 +08:00
{
// SignalR 配置跨域
builder.Services.AddSignalRCore();
// 配置跨域
builder.Services.AddCors(options =>
{
options.AddDefaultPolicy(policyBuilder => policyBuilder.WithOrigins("*")
.WithHeaders("*")
.WithMethods("*"));
});
}
}