在同一解决方案中为 CurrentCulture 获取两个不同的值

Getting two different values for CurrentCulture in same solution

我的解决方案中有多个项目:我有一个名为 "Api" 的 WebApi 项目,它引用了一个名为 "Models" 的 class 库。我在我的网络配置中设置全球化信息是这样的:

<globalization uiCulture="en"/>

我的 "Models" 项目中有一些资源 (.resx) 文件,我的问题是我正在获取已翻译字符串的西班牙语版本。如果我在 "Api" 项目的这一行调试并设置断点:

var a = CultureInfo.CurrentCulture;

我得到值 "en-GB",但是如果我在 "Models" 项目中设置类似的行和断点,我得到 "es-Es"。 我做错了什么?我怎样才能解决这个问题?理想情况下,我会在我的网络配置中保留语言配置(因为我对多个环境进行了许多转换)。非常感谢

编辑:我有另一个类似于 "Models" 的 class 库,名为 "Services",我也从“Api 引用了它。我在那里检查过 CultureInfo.CurrentCulture 以及 CultureInfo.CurrentUICulture 等于 "en-GB" 所以我猜这可能与项目配置有关?

我看到 "Models" 代码在不同的线程中执行,所以我从 Web 配置中删除了全球化信息并将其替换为

<add key="LanguageCode" value="es" />

Ant 然后在我的 "Api" 项目的 Startup.Cs 中写道:

 CultureInfo culture = CultureInfo.CreateSpecificCulture(WebConfigurationManager.AppSettings["LanguageCode"]);
        CultureInfo.DefaultThreadCurrentCulture = culture;
        CultureInfo.DefaultThreadCurrentUICulture = culture;

这似乎工作正常。