在同一解决方案中为 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;
这似乎工作正常。
我的解决方案中有多个项目:我有一个名为 "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;
这似乎工作正常。