using System.Configuration; namespace XP.Common.Dump.Configs { /// /// Dump 配置加载器,从 App.config 读取 Dump 相关配置项 | Dump configuration loader, reads dump-related configuration from App.config /// public static class ConfigLoader { /// /// 配置键前缀 | Configuration key prefix /// private const string KeyPrefix = "Dump:"; /// /// 从 App.config 加载 Dump 配置 | Load Dump configuration from App.config /// /// Dump 配置实体,缺失或无效配置项使用默认值 | Dump configuration entity, uses default values for missing or invalid items public static DumpConfig LoadDumpConfig() { var config = new DumpConfig(); // 加载存储路径 | Load storage path var storagePath = ConfigurationManager.AppSettings[KeyPrefix + "StoragePath"]; if (!string.IsNullOrEmpty(storagePath)) config.StoragePath = storagePath; // 加载是否启用定时触发 | Load enable scheduled dump var enableScheduled = ConfigurationManager.AppSettings[KeyPrefix + "EnableScheduledDump"]; if (bool.TryParse(enableScheduled, out var enabled)) config.EnableScheduledDump = enabled; // 加载定时触发间隔 | Load scheduled interval var interval = ConfigurationManager.AppSettings[KeyPrefix + "ScheduledIntervalMinutes"]; if (int.TryParse(interval, out var min) && min > 0) config.ScheduledIntervalMinutes = min; // 加载 Mini Dump 文件大小上限 | Load Mini Dump size limit var sizeLimit = ConfigurationManager.AppSettings[KeyPrefix + "MiniDumpSizeLimitMB"]; if (long.TryParse(sizeLimit, out var size) && size > 0) config.MiniDumpSizeLimitMB = size; // 加载文件保留天数 | Load retention days var retentionDays = ConfigurationManager.AppSettings[KeyPrefix + "RetentionDays"]; if (int.TryParse(retentionDays, out var days) && days > 0) config.RetentionDays = days; return config; } } }