无法使用 ResourceManager.GetResourceSet 加载区域性特定的 RESX
Unable to load culture-specific RESX using ResourceManager.GetResourceSet
我在我的 .NET Framework MVC 项目中声明了以下 RESX 文件:
默认文化是de-CH
。
我有以下检索 ResourceSet
的代码:
public CultureInfo Culture { get; set; }
public ResourceSet ResourceSet
{
get
{
var resMgr = new ResourceManager(nameOfResource, Assembly.Load(assemblyName));
return resMgr.GetResourceSet(cultureInfo: Culture, createIfNotExists: false, tryParents: true);
}
}
我有一些代码,对于给定的一组 CultureInfo
个对象,它试图加载相应的 ResourceSet
个对象。
但出于某种原因,它始终只加载默认文化 de-CH
的 ResourceSet
。如果我将 tryParents
设置为 false
那么它 returns null
.
我做错了什么?如果我设置...
Culture = CultureInfo.GetCultureInfo("en-US")
...然后调用ResourceSet
为什么它不从Create.en-US.resx加载内容?
我自己弄明白了:传递给 GetResourceSet
- createIfNotExists
的第二个参数有一个误导性的名称。该名称暗示资源对象将 创建 如果一个资源对象尚不存在,而文档对此有不同的解释(我强调):
true to load the resource set, if it has not been loaded yet; otherwise, false.
一旦我将此值设置为 true
,就会加载预期的文化特定资源集。
我在我的 .NET Framework MVC 项目中声明了以下 RESX 文件:
默认文化是de-CH
。
我有以下检索 ResourceSet
的代码:
public CultureInfo Culture { get; set; }
public ResourceSet ResourceSet
{
get
{
var resMgr = new ResourceManager(nameOfResource, Assembly.Load(assemblyName));
return resMgr.GetResourceSet(cultureInfo: Culture, createIfNotExists: false, tryParents: true);
}
}
我有一些代码,对于给定的一组 CultureInfo
个对象,它试图加载相应的 ResourceSet
个对象。
但出于某种原因,它始终只加载默认文化 de-CH
的 ResourceSet
。如果我将 tryParents
设置为 false
那么它 returns null
.
我做错了什么?如果我设置...
Culture = CultureInfo.GetCultureInfo("en-US")
...然后调用ResourceSet
为什么它不从Create.en-US.resx加载内容?
我自己弄明白了:传递给 GetResourceSet
- createIfNotExists
的第二个参数有一个误导性的名称。该名称暗示资源对象将 创建 如果一个资源对象尚不存在,而文档对此有不同的解释(我强调):
true to load the resource set, if it has not been loaded yet; otherwise, false.
一旦我将此值设置为 true
,就会加载预期的文化特定资源集。