Я пытаюсь заполнить список с помощью некоторых данных реестра, используя этот код.Listview Item всегда null
private void button1_Click(object sender, EventArgs e)
{
ListViewItem lvItem = null;
RegistryKey uninstallKey = Registry.LocalMachine.OpenSubKey(UninstallPath);
if (uninstallKey != null)
foreach (var subKey in uninstallKey.GetSubKeyNames())
{
using (RegistryKey key = uninstallKey.OpenSubKey(subKey))
{
if (key != null)
{
lvItem =
new ListViewItem(key.GetValue("DisplayName").ToString());
lvItem.SubItems.Add(key.GetValue("Publisher").ToString());
}
}
listView1.Items.Add(lvItem);
}
}
}
Все в порядке при отладке приложения. Нет ничего пустого до тех пор, пока точка останова не окажется здесь
lvItem = new ListViewItem(key.GetValue("DisplayName").ToString());
lvItem.SubItems.Add(key.GetValue("Publisher").ToString());
приложение аварийно завершает работу и дает мне исключение нулевого указателя. Я знаю, что это глупый вопрос, но я действительно не понимаю, как это может быть пустым.
Я думаю, что 'key.GetValue (" DisplayName ")' возвращает 'null', то он сбой в' ToString'. –