我的字典有一个RegistryKey
键。
我似乎无法为该特定键设置值。无论我做什么,我都会得到KeyNotFoundException
。该键确实存在,我早先创建了它
例如:
public Dictionary<RegistryKey, Dictionary<string, object>> subKeyNodes = new...
subKeyNodes.Add(mainKeyNode.CreateSubKey(keyName),new Dictionary<string, object>());
subKeyNodes[mainKeyNode.CreateSubKey(keyName)].Add("ROAR", "value");
添加工作正常。使用该键值添加总是失败,而且我似乎无法弄清楚。
最佳答案
RegistryKey
既没有GetHashCode
也没有Equals
替代。这意味着RegistryKey
的实例将使用默认实现(在Object
中定义)。因此,即使RegistryKey
的两个字段相同,也不会将其标识为“相等”。这意味着您不能将此类的实例用作基于散列的集合(例如Dictionary
或HashSet
)的键。
解决方法是,您可以定义另一个包装RegistryKey
的类并定义这些方法替代。