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