I have a RegistryKey as a Key for my dictionary.
I cannot seem to set a value for that specific Key. Whatever I do, I keep getting a KeyNotFoundException. The Key does exist, I created it one line earlier
e.g:
public Dictionary<RegistryKey, Dictionary<string, object>> subKeyNodes = new...
subKeyNodes.Add(mainKeyNode.CreateSubKey(keyName),new Dictionary<string, object>());
subKeyNodes[mainKeyNode.CreateSubKey(keyName)].Add("ROAR", "value");
The Add works fine. Adding with that key value always fails and I cannot seem to figure it out.
RegistryKeyhas neither aGetHashCodenorEqualsoverride. This means instances ofRegistryKeywill use the default implementation (defined inObject). Because of this two instances ofRegistryKeywill not be identified as ‘equal’ even if their fields are the same. This means you cannot use instances of this class as a key to hashed based collections such asDictionaryorHashSet.As a workaround, you could define another class that wraps
RegistryKeyand defines these method overrides.