Assembly.GetExecutingAssembly()。GetManifestResourceStream不加载流

时间:2019-07-09 10:29:06

标签: c# .net streamreader

我使用流读取器读取sql数据。尽管resourceName是正确的,并且资源Build Action属性是Embedded Resource,但它仍在StreamReader上引发以下错误:   System.ArgumentNullException:值不能为null。

        var namespace1 = typeof(Toolbox).Namespace;
        var name1 = name.Replace('\\', '.');
        string resourceName = $"{typeof(Toolbox).Namespace}.{name1}";
        //Innosys.Ap.GetCurrentTimeKey.sql
        using (Stream manifestResourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)
        )
        {
            using (StreamReader streamReader = new StreamReader(manifestResourceStream))
                return streamReader.ReadToEnd();
        }

以下是我到目前为止的调试结果。

  1. namespace1返回项目中用于类的正确名称空间,即我从中调用streamReader的类,即资源文件。

  2. name1返回带有扩展名的资源文件名。即。 myquery.sql

  3. 从我的角度来看,
  4. 资源名称基本上是将路径和文件名结合在一起的,它返回正确的资源地址。即myNamespace.myquery.sql

0 个答案:

没有答案