Вы получаете это исключение, потому что ваша переменная selectedFile
никогда не заполняется.
Вам необходимо заполнить переменную selectedFile
После отобразить диалоговое окно и позволить пользователю выбрать файл XML:
selectConfigFile.ShowDialog();
var selectedFile = selectConfigFile.SafeFileName;
XDocument configFile = XDocument.Load(selectedFile);
Хорошо благодарите u все за Ваши ответы. Я нашел один простой ответ комментарием от г-на Hao ниже вопроса. его ответ является простой программой как это
Turbo C (DOS-программа):
char far* src = (char far*) 0xB8000000L;
*src = 'M';
src += 2;
*src = 'D';
или попробуйте это: http://en.wikipedia.org/wiki/Brainfuck :) –//Hao (час назад)
Я попробовал его на Turbo C и его работе. Я хотел простое решение как это, и я хотел принять его как корректный ответ, но он (Hao) дал его как комментарий, таким образом, я вставил его здесь, чтобы другие пользователи знали об этом от имени его и приняли его. Еще раз благодарите u г-на Hao.
В стандарте C, Вы не можете. Единственный ввод-вывод, определенный в C, через стандартные библиотечные функции C.
На данной платформе могут быть способы сделать это:
write
звоните непосредственно, не пользуясь Вашей библиотекой C. Захватите источник своей библиотеки C, чтобы видеть, как это сделано.Если Вы не пишете свою собственную библиотеку C, я не уверен, почему Вы хотели бы сделать это.
В Linux можно использовать write
системный вызов:
write(1, "hello\n", 6); // write hello\n to stdout
Если Вы не можете получить достаточно его, можно сделать один шаг ниже, вызвав syscall в общем:
syscall(__NR_write, 1, "hello\n", 6);
Об этом стоит знать strace
, который можно использовать для наблюдения, какие syscalls используются какой-то конкретной программой, в то время как она работает. Но обратите внимание, что для "некоторого простого синтаксического анализатора", едва необходимо использовать необработанные системные вызовы. Лучше используйте функции c библиотеки.
Между прочим, наблюдение за WriteFile и GetStdHandle функционирует, если Вы хотите сделать вышеупомянутое в Windows, не пользуясь c стандартной библиотекой. Не будет как l33t как решение Linux все же.