use*_*878 5 c# resources codedom
好吧,我觉得我的问题的答案是在线的,但我找不到它.我要做的就是将一个文本资源文件添加到我正在用CodeDom编译的程序中,然后在编译的程序中访问该文本文件.要添加嵌入式资源,我使用了以下代码:
System.Resources.ResourceWriter writer = new System.Resources.ResourceWriter("Resources.resx");
writer.AddResource("EoS.txt", Form1.MasterEncoder.GetBytes(Properties.Resources.Eos));
writer.Generate();
writer.Close();
Parameters.EmbeddedResources.Add("Resources.resx");
Run Code Online (Sandbox Code Playgroud)
这里"参数"是我的编译器参数对象,"Eos.txt"是我正在尝试编写的文件,它是应用程序中的资源.这不会在我构建程序时抛出任何错误,但是当我尝试使用此代码在新编译的程序中获取此文本文件时,我将其添加到表单加载事件中:
_assembly = Assembly.GetExecutingAssembly();
_textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("Resources.EoS.txt"));
TextFile = _textStreamReader.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
我粗略地得到这个错误:"值不能为null参数名称:stream." 我已经尝试将"资源"更改为程序的命名空间以及许多其他的小调整,但没有任何工作.我不确定我是否在完全错误的轨道上,但我认为我的问题在于CodeDom.有什么建议?
几乎可以肯定,这是由于资源名称的形成方式意外造成的。当我一时记不起时,我使用的一个技巧是临时添加这一行代码:
string[] resourceNames = _assembly.GetManifestResourceNames();
Run Code Online (Sandbox Code Playgroud)
在其上设置一个断点,从而提醒自己正确的名称,然后将其复制到代码中。
| 归档时间: |
|
| 查看次数: |
1571 次 |
| 最近记录: |