public bool TryGetValueKind(string collectionPath, string key, out ValueKind kind) { CodeContract.RequiresArgumentNotNullAndNotEmpty(collectionPath, "collectionPath"); collectionPath = collectionPath.NormalizePath(); CodeContract.RequiresArgumentNotNullAndNotEmpty(key, "key"); kind = ValueKind.Unknown; RegistryValueKind registryValueKind = default(RegistryValueKind); if (registryTools.TryGetRegistryValueKindFromCurrentUserRoot(collectionPath, key, out registryValueKind)) { switch (registryValueKind) { case RegistryValueKind.DWord: kind = ValueKind.DWord; break; case RegistryValueKind.QWord: kind = ValueKind.QWord; break; case RegistryValueKind.MultiString: kind = ValueKind.MultiString; break; case RegistryValueKind.String: kind = ValueKind.String; break; default: kind = ValueKind.Unknown; break; } return(true); } return(false); }