我的解决方案中有多个项目:我有一个名为“Api”的WebApi项目,它引用了一个名为“Models”的类库。我在我的网络配置中设置全球化信息,如下所示:
<globalization uiCulture="en"/>
我的“模型”项目中有一些资源(.resx)文件,我的问题是我获得了翻译字符串的西班牙语版本。如果我在“Api”项目中调试并在此行中设置断点:
var a = CultureInfo.CurrentCulture;
我得到的值是“en-GB”,但如果我在“Models”项目中设置了类似的行和断点,我会得到“es-Es”。 我做错了什么?我怎样才能解决这个问题?理想情况下,我会在我的Web配置中保留语言配置(因为我有多个环境的转换)。非常感谢你
编辑:我有另一个类似于“模型”的类库,名为“服务”,我也参考了“Api。我在那里查看了CultureInfo.CurrentCulture以及CultureInfo.CurrentUICulture等于”en-GB“所以我是猜测它可能与项目配置有关吗?答案 0 :(得分:1)
我看到&#34;模特&#34;代码在不同的线程中执行,因此我从web配置中删除了全球化信息,并将其替换为
<add key="LanguageCode" value="es" />
Ant然后在我的&#34; Api&#34;的Startup.Cs上我写的项目:
CultureInfo culture = CultureInfo.CreateSpecificCulture(WebConfigurationManager.AppSettings["LanguageCode"]);
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
这似乎工作正常。