streamReader ArgumentNullException - PullRequest
       8

streamReader ArgumentNullException

2 голосов
/ 05 мая 2011

Привет,
У меня есть программа, которая использует SQL Express локальной БД. Я хочу иметь возможность обновлять эту БД, используя программу для запуска необходимых сценариев. Текстовые файлы были добавлены в проект как встроенный ресурс (VS2010), и этот файл содержит текст. Не удается открыть файл, хотя. Я получаю «ArgumentNullException был необработан» «Значение не может быть нулевым. Parametername: stream» вот код ...

Assembly assem;
StreamReader textReader;
assem = Assembly.GetExecutingAssembly();
//fails at this line below.
textReader = new StreamReader(assem.GetManifestResourceStream("projectName.sqlUpdates.txt"));

tReader.Peek() != -1)
  script = textReader.ReadToEnd();

Ответы [ 2 ]

2 голосов
/ 05 мая 2011

Является ли 'projectName' полной сборкой и пространством имен, в котором находится файл sqlUpdates.txt? Код запускает ваш пример выше в сборке 'projectName' или где-то еще?

Если файл sqlUpdates.txt находится в пространстве имен под сборкой projectName, вам необходимо указать это в вызове GetManizestResourceStream, т.е.:

Stream resource = assem.GetManifestResourceStream("projectName.nameSpace.sqlUpdates.txt")
0 голосов
/ 05 мая 2011

Это в основном означает, что

assem.GetManifestResourceStream("projectName.sqlUpdates.txt")

вернул ноль ... что он будет делать, если не сможет найти этот ресурс. Проверьте, что это на самом деле в сборке, например, с отражателем или assem.GetManifestResourceNames().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...