using System.Configuration; namespace XP.Common.License.Configs { /// /// 授权配置加载器,从 App.config 读取授权相关配置项 | License configuration loader, reads license-related configuration from App.config /// public static class ConfigLoader { /// /// 配置键前缀 | Configuration key prefix /// private const string KeyPrefix = "License:"; /// /// LicenseMode 有效值集合 | Valid values for LicenseMode /// private static readonly int[] ValidLicenseModes = { 0, 885 }; /// /// LicenseState 有效值集合 | Valid values for LicenseState /// private static readonly int[] ValidLicenseStates = { 10, 20 }; /// /// 从 App.config 加载授权配置 | Load license configuration from App.config /// /// 授权配置实体,缺失或无效配置项使用默认值 | License configuration entity, uses default values for missing or invalid items public static LicenseConfig LoadLicenseConfig() { var config = new LicenseConfig(); // 加载 LicenseMode | Load LicenseMode var licenseModeStr = ConfigurationManager.AppSettings[KeyPrefix + "LicenseMode"]; if (int.TryParse(licenseModeStr, out var licenseMode) && IsValidLicenseMode(licenseMode)) { config.LicenseMode = licenseMode; } // 加载 ModuleId | Load ModuleId var moduleIdStr = ConfigurationManager.AppSettings[KeyPrefix + "ModuleId"]; if (ushort.TryParse(moduleIdStr, out var moduleId) && IsValidModuleId(moduleId)) { config.ModuleId = moduleId; } // 加载 UseSma | Load UseSma var useSmaStr = ConfigurationManager.AppSettings[KeyPrefix + "UseSma"]; if (bool.TryParse(useSmaStr, out var useSma)) { config.UseSma = useSma; } // 加载 LicenseState | Load LicenseState var licenseStateStr = ConfigurationManager.AppSettings[KeyPrefix + "LicenseState"]; if (int.TryParse(licenseStateStr, out var licenseState) && IsValidLicenseState(licenseState)) { config.LicenseState = licenseState; } return config; } /// /// 验证 LicenseMode 值是否有效 | Validate whether LicenseMode value is valid /// /// 待验证的值 | Value to validate /// true 表示有效,false 表示无效 | true if valid, false if invalid private static bool IsValidLicenseMode(int value) { foreach (var valid in ValidLicenseModes) { if (value == valid) return true; } return false; } /// /// 验证 ModuleId 值是否在有效范围内 | Validate whether ModuleId value is within valid range /// /// 待验证的值 | Value to validate /// true 表示有效,false 表示无效 | true if valid, false if invalid private static bool IsValidModuleId(ushort value) { return value >= 1 && value <= 65535; } /// /// 验证 LicenseState 值是否有效 | Validate whether LicenseState value is valid /// /// 待验证的值 | Value to validate /// true 表示有效,false 表示无效 | true if valid, false if invalid private static bool IsValidLicenseState(int value) { foreach (var valid in ValidLicenseStates) { if (value == valid) return true; } return false; } } }