73 lines
1.9 KiB
C#
73 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()
|
||
{
|
||
// 注入服务依赖、Host服务、插件等
|
||
AddApplicationService();
|
||
// 使用扩展,第三方如Redis、Minio、SQLSugar
|
||
UseExtend();
|
||
// 配置跨域
|
||
UseCors();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 注入控制器、服务依赖、Host服务等
|
||
/// </summary>
|
||
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();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 扩展服务
|
||
/// </summary>
|
||
private void UseExtend()
|
||
{
|
||
// 设置过滤器
|
||
builder.FilterConfigInitialize();
|
||
// 初始化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("*"));
|
||
});
|
||
}
|
||
} |