关于c#:无法将资源文本文件的内容导入StreamReader

Trouble getting contents of resource text file into StreamReader

我希望有一个图形用户界面为用户提供两个选项:

  • 读取用户通过OpenFileDialog加载的密钥文件。
  • 读取预加载的密钥文件(用户将使用单选按钮选择一个)。
  • 这将有助于用户不需要携带所有的密钥文件,但如果需要添加新的密钥文件,它仍然允许灵活性。

    我的代码目前正在为选项1工作。我使用:

    1
    readFile = new StreamReader(KeyFileFullPath);

    其中,keyfilefullpath是OpenFileDialog定义的密钥文件的文件路径。

    我想在选项2中使用相同的streamreader,但我无法将读卡器指向资源文件。

    在这个问题上,我尝试了以下方法:

    1
    2
    _assembly = Assembly.GetExecutingAssembly();
    readFile = new StreamReader(_assembly.GetManifestResourceStream(TM_Decoder.Properties.Resources._7p1_HOB_Key));

    我用C的自动完成键导航到…"滚刀键",所以我希望它指向我实际存在的东西。但是,当我尝试运行代码时,我会得到以下错误:

    "值不能为空。参数名称:流"

    基于此,我尝试查找manifestresourcename,但它只包含:"tm ou decoder.form1.resources"和"tm ou decoder.properties.resources.resources"

    它们都没有指向我已经加载到项目资源中的密钥文件。

    提前感谢您帮助streamreader指向资源文本文件!

    编辑(响应Slaks建议):

  • 除非我误解了"根名称空间"的含义,否则我认为它是正确的。项目的名称是"tm decoder",所以我认为"tm_decoder"是根名称空间。这不对吗?
  • 谢谢,我将构建操作改为"嵌入资源"。它以前设置为"无"(我不知道)。不幸的是,这还不足以解决问题(调试尝试的结果没有变化)。
  • 我不确定资源文件夹中的项目。它们位于项目文件夹中名为"资源"的文件夹中,即TM解码器——>资源,与TM解码器——>属性——>资源不同这是Visual Studio在通过"项目属性"中的"资源"选项卡添加资源时自动执行的操作。

  • TM_Decoder.Properties.Resources._7p1_HOB_Key是一个包含实际内容的字符串,而不是资源名。"TM_Decoder.Resources._7p1_HOB_Key"是资源名。