private static string ValueToString(RegistryValueKind kind, object value)
{
if (value == null)
return string.Empty;
switch (kind)
{
case RegistryValueKind.String:
return value as string;
case RegistryValueKind.ExpandString:
return value as string;
case RegistryValueKind.Binary:
byte[] valBinary = (byte[])value;
return BitConverter.ToString(valBinary).Replace("-", "");
case RegistryValueKind.DWord:
return ((int)value).ToString();
case RegistryValueKind.MultiString:
return string.Join("\r\n", (string[])value);
case RegistryValueKind.QWord:
return ((long)value).ToString();
case RegistryValueKind.Unknown:
return "unknown: " + value;
case RegistryValueKind.None:
return string.Empty;
default:
throw new ArgumentOutOfRangeException("kind");
}
}