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

71 lines
1.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()
{
// 设置过滤器
FilterConfig.Initialize(builder);
// 初始化Redis
RedisContext.Initial();
// 初始化 Knife4Net 文档
Knife4Net.Initialize(builder);
// 启动 webSocket
WebSocketInitial.Start();
}
/// <summary>
/// 配置跨域
/// </summary>
private void UseCors()
{
// SignalR 配置跨域
builder.Services.AddSignalRCore();
// 配置跨域
builder.Services.AddCors(options =>
{
options.AddDefaultPolicy(policyBuilder => policyBuilder.WithOrigins("*")
.WithHeaders("*")
.WithMethods("*"));
});
}
}