当使用AppResources.ResourceManager读取资源文件时,如果出现FileNotFound异常,可能是由于资源文件的Build Action属性不正确所导致的。文件的Build Action属性必须设置为Embedded Resource(嵌入式资源)。下面是一个示例代码,演示如何正确加载嵌入式资源文件:
using System;
using System.IO;
using System.Reflection;
using System.Resources;
namespace ResourceManagerExample
{
class Program
{
static void Main(string[] args)
{
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "ResourceManagerExample.ResourceFile.txt"; //这里是资源文件名
string result;
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
{
if (stream == null)
{
throw new ArgumentException($"Resource file not found: {resourceName}");
}
using (var reader = new StreamReader(stream))
{
result = reader.ReadToEnd();
}
}
Console.WriteLine(result);
Console.ReadLine();
}
}
}
在上面的示例代码中,GetExecutingAssembly()方法返回了当前组件的程序集。资源文件的名称是ResourceFile.txt,因此可以通过字符串 "ResourceManagerExample.ResourceFile.txt" 来引用它。GetManifestResourceStream()方法从程序集中获取嵌入式资源的流,并使用StreamReader读取它。这个示例代码可以用于读取文本文件,如果要加载其他类型的资源(如图片、音频、视频等),需要使用相应的类库。