无法使用 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-CHResourceSet。如果我将 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,就会加载预期的文化特定资源集。