Nó có thể xảy ra nếu bạn đang ở trên một máy 64-bit. Tạo một lớp helper đầu tiên (yêu cầu .NET 4.0 hoặc cao hơn):
public class RegistryHelpers
{
public static RegistryKey GetRegistryKey()
{
return GetRegistryKey(null);
}
public static RegistryKey GetRegistryKey(string keyPath)
{
RegistryKey localMachineRegistry
= RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,
Environment.Is64BitOperatingSystem
? RegistryView.Registry64
: RegistryView.Registry32);
return string.IsNullOrEmpty(keyPath)
? localMachineRegistry
: localMachineRegistry.OpenSubKey(keyPath);
}
public static object GetRegistryValue(string keyPath, string keyName)
{
RegistryKey registry = GetRegistryKey(keyPath);
return registry.GetValue(keyName);
}
}
Cách sử dụng:
string keyPath = @"SOFTWARE\MyApp\Settings";
string keyName = "MyAppConnectionStringKey";
object connectionString = RegistryHelpers.GetRegistryValue(keyPath, keyName);
Console.WriteLine(connectionString);
Console.ReadLine();
Bạn đúng cách thoát KeyPath? Có phải "SOFTWARE \\ TestKey" và không phải là "SOFTWARE \ TestKey" không? – Michael
có, tôi đã đăng sai. Nó thực sự được thiết lập để sử dụng \\ – PositiveGuy
Vì vậy, điều này đã làm việc trên máy tính của ông chủ của tôi tốt. Không có lý do tại sao nó không nên ở đây. Tôi đã cấp quyền truy cập tài khoản asp.net cho nó vì tôi đang chạy máy chủ web VS và vẫn trả về giá trị rỗng. – PositiveGuy