using System.Collections.Specialized; namespace MQTT_WinformV1 { using System.Configuration; /// /// 统一配置读取辅助类( /// public class AppConfigHelper { #region 私有字段(宜搭配置集合,仅初始化一次) private static readonly NameValueCollection _yiDaConfigCollection; #endregion #region 静态构造函数(程序启动时执行,加载所有配置,仅执行一次) static AppConfigHelper() { // 初始化宜搭配置集合 _yiDaConfigCollection = (NameValueCollection)ConfigurationManager.GetSection("YiDaConfig"); if (_yiDaConfigCollection == null) { _yiDaConfigCollection = new NameValueCollection(); } } #endregion #region 数据库配置(MySQL 连接字符串) /// /// 获取 MySQL 连接字符串(对应 App.config 中的 MySqlConnection) /// public static string MySqlConnectionString { get { ConnectionStringSettings connectionSettings = ConfigurationManager.ConnectionStrings["MySqlConnection"]; // 容错处理:数据库配置缺失抛出明确异常,影响核心功能需提醒 if (connectionSettings == null || string.IsNullOrEmpty(connectionSettings.ConnectionString)) { throw new ConfigurationErrorsException("App.config 中未配置有效的 MySqlConnection 连接字符串"); } return connectionSettings.ConnectionString; } } #endregion #region 钉钉配置 /// /// 钉钉 BaseAddress 地址 /// public static string DingDing_BaseAddress => GetYiDaConfigValue("DingDingRobotWebHook"); /// /// 钉钉机器人 WebHook 地址 /// public static string DingDing_RobotWebHook => GetYiDaConfigValue("DingDingRobotWebHook"); /// /// 钉钉机器人加签 Secret /// public static string DingDing_RobotSecret => GetYiDaConfigValue("DingDingRobotSecret"); #endregion #region 宜搭配置(所有宜搭相关配置项) /// /// 宜搭 TokenAppKey /// public static string YiDa_TokenAppKey => GetYiDaConfigValue("TokenAppKey"); /// /// 宜搭 TokenAppSecret /// public static string YiDa_TokenAppSecret => GetYiDaConfigValue("TokenAppSecret"); /// /// 宜搭 AppType /// public static string YiDa_AppType => GetYiDaConfigValue("AppType"); /// /// 宜搭 SystemToken /// public static string YiDa_SystemToken => GetYiDaConfigValue("SystemToken"); /// /// 宜搭 UserId /// public static string YiDa_UserId => GetYiDaConfigValue("UserId"); /// /// 宜搭 FormUuid /// public static string YiDa_FormUuid => GetYiDaConfigValue("FormUuid"); /// /// 宜搭 ProcessCode /// public static string YiDa_ProcessCode => GetYiDaConfigValue("ProcessCode"); #endregion #region 私有辅助方法(宜搭配置通用读取) /// /// 通用宜搭配置值读取方法(带容错,配置项不存在返回空字符串) /// /// 配置项的 key /// 配置项的值,不存在返回空字符串 private static string GetYiDaConfigValue(string key) { return _yiDaConfigCollection[key] ?? string.Empty; } #endregion } }