我需要知道从具有多个资源文件(.resx)的资源DLL中正确访问字符串和图像的方法。
我正在开展一个非常大的项目,由几个winforms组成,每个winforms有多个面板。我试图通过使每个表单具有自己的res文件并将应用程序限制为一个资源DLL而不是多个资源DLL来整理一些东西。
问题是当我尝试将新资源文件添加到我的资源DLL并尝试访问字符串时,例如,正在保存在新创建的resx文件中。 ResourceManager返回一个空字符串。
以下是我创建ResourceManager对象并获取字符串
的方法static public string GetResourceString(string sStringName)
{
System.Reflection.Assembly myDllAssembly = System.Reflection.Assembly.LoadFile(ResPath);
string[] allResourcesinDLL = myDllAssembly.GetManifestResourceNames();
ResourceManager ResInstance = new ResourceManager(allResourcesinDLL[0].Replace(".resources", string.Empty), myDllAssembly);
return ResInstance.GetString(sStringName);
}
其中ResPath是我的资源DLL的路径,sStringName是资源/字符串标题。
我不确定是否有办法指定要读取的resx文件,或者是否应该以其他方式处理它。请记住,我的应用程序是使用.net 2.0框架编译的,所以我只限于我能够使用的API。