我在我的网站项目中添加了文本文件。右键单击并单击属性 我选择的菜单,Build Action - >资源。
如何在我的代码页面中检索文件的内容。
我试试这个,但我收到了流无效
internal string GetFromResources(string resourceName)
{
Assembly assem = this.GetType().Assembly;
using (Stream stream = assem.GetManifestResourceStream(resourceName))
{
using (var reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}
}
但它不起作用。
请帮忙
答案 0 :(得分:2)
尝试将Build Action更改为Embedded Resource,并确保资源名称包含命名空间。即。
MyProjectNamespace.MyTextFileName.txt
如果您的文件位于子文件夹中,请使用:
MyProjectNamespace.SubFolderName.MyTextFileName.txt
答案 1 :(得分:1)
我解决了,下面是我采取的步骤。
首先,我将文本文件定义为嵌入式资源。 第二个问题是我没有在文本文件中添加程序集名称空间。
所以我改变了函数并添加了命名空间
internal string GetFromResources(string resourceName)
{
Assembly assem = this.GetType().Assembly;
**List<string> listNameSpaces = assem.GetTypes().Select(t => t.Namespace).Distinct().ToList<string>();**
foreach (string ns in listNameSpaces)
{
**string nsResourceName = ns + "." + resourceName;**
using (Stream stream = assem.GetManifestResourceStream(nsResourceName))
{
if (stream != null)
{
using (var reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}
}
}
return string.Empty;
}