统一 Dump、Logging、Database 等功能的配置文件加载和定义类,优化ConfigLoader,职责分散各个模块。

This commit is contained in:
QI Mingxuan
2026-05-15 15:49:02 +08:00
parent 07d76f5ab1
commit ad719d157b
7 changed files with 239 additions and 2 deletions
@@ -0,0 +1,52 @@
using System;
using System.IO;
namespace XP.Common.Database.Configs
{
/// <summary>
/// SQLite 配置实体(从 App.config 读取)| SQLite configuration entity (loaded from App.config)
/// </summary>
public class SqliteConfig
{
/// <summary>
/// 数据库文件路径 | Database file path
/// </summary>
public string DbFilePath { get; set; } = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"Files", "Data", "XP.db");
/// <summary>
/// 连接超时时间(秒,默认30| Connection timeout (seconds, default 30)
/// </summary>
public int ConnectionTimeout { get; set; } = 30;
/// <summary>
/// 数据库不存在时是否自动创建(默认true| Whether to auto-create if not exists (default true)
/// </summary>
public bool CreateIfNotExists { get; set; } = true;
/// <summary>
/// 是否启用 WAL 模式(提升并发性能,默认true| Whether to enable WAL mode (default true)
/// </summary>
public bool EnableWalMode { get; set; } = true;
/// <summary>
/// 是否开启日志记录(记录所有SQL操作,默认false| Whether to enable SQL logging (default false)
/// </summary>
public bool EnableSqlLogging { get; set; } = false;
/// <summary>
/// 获取 SQLite 连接字符串 | Get SQLite connection string
/// </summary>
public string GetConnectionString()
{
var builder = new Microsoft.Data.Sqlite.SqliteConnectionStringBuilder
{
DataSource = DbFilePath,
Cache = Microsoft.Data.Sqlite.SqliteCacheMode.Default,
DefaultTimeout = ConnectionTimeout
};
return builder.ToString();
}
}
}