using System.Configuration; namespace XP.Common.Database.Configs { /// /// SQLite 配置加载器,从 App.config 读取数据库相关配置项 | SQLite configuration loader, reads database-related configuration from App.config /// public static class ConfigLoader { /// /// 配置键前缀 | Configuration key prefix /// private const string KeyPrefix = "Sqlite:"; /// /// 从 App.config 加载 SQLite 配置 | Load SQLite configuration from App.config /// /// SQLite 配置实体,缺失或无效配置项使用默认值 | SQLite configuration entity, uses default values for missing or invalid items public static SqliteConfig LoadSqliteConfig() { var config = new SqliteConfig(); // 加载数据库文件路径 | Load database file path var dbPath = ConfigurationManager.AppSettings[KeyPrefix + "DbFilePath"]; if (!string.IsNullOrEmpty(dbPath)) config.DbFilePath = dbPath; // 加载连接超时时间 | Load connection timeout var timeout = ConfigurationManager.AppSettings[KeyPrefix + "ConnectionTimeout"]; if (int.TryParse(timeout, out var t) && t > 0) config.ConnectionTimeout = t; // 加载是否自动创建 | Load create if not exists var createIfNotExists = ConfigurationManager.AppSettings[KeyPrefix + "CreateIfNotExists"]; if (bool.TryParse(createIfNotExists, out var c)) config.CreateIfNotExists = c; // 加载是否启用 WAL 模式 | Load enable WAL mode var enableWal = ConfigurationManager.AppSettings[KeyPrefix + "EnableWalMode"]; if (bool.TryParse(enableWal, out var w)) config.EnableWalMode = w; // 加载是否开启 SQL 日志 | Load enable SQL logging var enableSqlLog = ConfigurationManager.AppSettings[KeyPrefix + "EnableSqlLogging"]; if (bool.TryParse(enableSqlLog, out var l)) config.EnableSqlLogging = l; return config; } } }