/// <summary> /// 验证指定的键值对是否在配置中心中做了更改 仅仅针对于重新加载配置 不针对重启 /// 也可前缀方式 比较两个字典Dictionary是否相同 /// </summary> /// <param name="configKey"></param> /// <param name="prefix">该key是否为前缀的key</param> /// <returns>如果指定的配置键修改了 则返回true</returns> public bool CheckUpdate(string configKey, bool prefix = false) { if (prefix) { if (!configKey.EndsWith(".")) { configKey = configKey + "."; } var x = GetByprefix(configKey); var y = OldConfigDictionary.Where(dic => dic.Key.StartsWith(configKey)).ToDictionary(dic => dic.Key.Remove(0, configKey.Length), dic => dic.Value); if (x.Count != y.Count) { return(true); } if (x.Keys.Except(y.Keys).Any()) { return(true); } if (y.Keys.Except(x.Keys).Any()) { return(true); } return(!x.All(pair => string.Equals(pair.Value, y.TryGet(pair.Key), StringComparison.CurrentCultureIgnoreCase))); } try { return(!string.Equals(OldConfigDictionary.TryGet(configKey), ConfigDictionary.TryGet(configKey), StringComparison.CurrentCultureIgnoreCase)); } catch { return(true); } }