streamReader ArgumentNullException
本文关键字:ArgumentNullException streamReader | 更新日期: 2023-09-27 17:54:53
大家好,
我有一个程序,使用sql表达本地DB。我希望能够使用该程序来运行必要的脚本更新数据库。文本文件已作为嵌入式资源添加到项目(VS2010),并且该文件包含文本。但是它无法打开文件。我得到一个"ArgumentNullException未处理"值不能为空。参数名: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();
是'projectName'完整的汇编和命名空间,其中文件sqlUpdates.txt生活?代码是否在'projectName'程序集或其他地方运行上面的示例?
如果sqlUpdates.txt文件位于projectName程序集下面的命名空间中,那么您需要在调用GetManifiestResourceStream时指定它,即:
Stream resource = assem.GetManifestResourceStream("projectName.nameSpace.sqlUpdates.txt")
这基本上意味着
assem.GetManifestResourceStream("projectName.sqlUpdates.txt")
返回零……如果找不到资源,它就会这么做。检查它是否在组件中,例如与Reflector或assem.GetManifestResourceNames()
。