CultureInfo在.NET Core和.NET Framework之间有所不同


.NET

Core.NET Framework之间的CultureInfo似乎有一些区别。 这有什么原因吗?

例:

var italian = CultureInfo.GetCultureInfo("it").TextInfo.CultureName;

.NET Core 上解析为:

it

虽然它以前解析为在 .NET Framework 上:

it-IT

这会破坏一些单元测试。 在两个干净的控制台项目中运行它会产生不同的结果。 尝试从Nuget添加系统全球化,结果没有差异。

是否需要一些配置才能使其相同,或者他们是否破坏了文化信息altogheter?

我确认了这种行为,但Core更具决定性。

你要求文化"它",你得到文化"它"。

.NET Framework 正在添加更多详细信息,并为 it-IT 指定默认子区域性。

如果您要求

var italian = CultureInfo.GetCultureInfo("it-IT").TextInfo.CultureName;

径直。

您将在两个世界中得到相同的结果。

更改该字符串应该是测试的一个小问题。

最新更新