具有多个 resx 文件的 .net 资源 DLL

.net Resource DLL with multiple resx files

提问人:Zaid Amir 提问时间:9/23/2012 更新时间:9/23/2012 访问量:2445

问:

我需要知道如何从具有多个资源文件 (.resx) 的资源 DLL 中正确访问字符串和图像。

我有一个非常大的项目,我正在做,它由几个winform组成,每个winform都有多个面板。我试图通过使每个表单都有自己的 res 文件并将应用程序限制为一个资源 DLL 而不是多个资源 DLL 来整理一下。

问题是,当我尝试将新的资源文件添加到我的资源 DLL 并尝试访问保存在新创建的 resx 文件中的字符串时。ResourceManager 返回一个 null 字符串。

以下是我创建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。

C# WinForms 资源 NET-2.0

评论

0赞 akton 9/23/2012
您是否正在尝试从存储在正确子目录中的资源附属程序集加载本地化字符串和图像?如果是这样,为什么不像往常一样使用 ResourceManager?
1赞 Zaid Amir 9/24/2012
不确定正常使用 ResourceManager 是什么意思?
0赞 akton 9/24/2012
查看 msdn.microsoft.com/en-us/library/21a15yht(v=vs.110).aspx 中的“附属程序集名称和位置”部分。如果遵循该标准,只需使用与“附属程序集:示例”一节中介绍的代码类似的代码即可。不需要问题中介绍的很多工作。

答: 暂无答案