Это означает, что ваш код использовал ссылочную переменную объекта, которая была установлена в нуль (т. е. она не ссылалась на экземпляр фактического объекта).
Чтобы предотвратить ошибку, объекты, которые могут быть пустыми, должны быть протестированы для null перед тем, как использовать.
if (myvar != null)
{
// Go ahead and use myvar
myvar.property = ...
}
else
{
// Whoops! myvar is null and cannot be used without first
// assigning it to an instance reference
// Attempting to use myvar here will result in NullReferenceException
}
В какой версии Windows вы работаете / тестируете?
Есть функция Windows 7 (не уверен, что она тоже в Vista или даже XP), если вы укажете веб-местоположение ( будь то http или ftp), Windows загружает файл из этого места и передает путь к загруженному файлу, следовательно, к папке Temp, к приложению. Насколько я могу судить по документации OpenFileDialog на msdn , нет способа отключить это поведение.
Вам придется либо свернуть собственную реализацию, либо посмотреть, есть ли PInvoke, который вы можете использовать, чтобы убедить его не проявлять такого поведения.