Deu*_*ion 5 c# globalization locale cultureinfo .net-core
.NET Core和.NET Framework之间的 CultureInfo 似乎存在一些差异。这有什么理由吗?
例子:
var italian = CultureInfo.GetCultureInfo("it").TextInfo.CultureName;
Run Code Online (Sandbox Code Playgroud)
在.NET Core上解析为:
it
Run Code Online (Sandbox Code Playgroud)
虽然它之前在.NET Framework上解析为:
it-IT
Run Code Online (Sandbox Code Playgroud)
这会破坏一些单元测试。在两个干净的控制台项目中运行它会产生不同的结果。尝试从 Nuget 添加 System.Globalization,结果没有任何差异。
是否需要一些配置才能使其相同,或者它们是否完全破坏了 CultureInfo?
我确认了这种行为,但 Core 更有结论性。
你要求文化“它”,你就会得到文化“它”。
.NET Framework 正在添加更多详细信息,并为 it-IT 指定默认的亚文化。
如果你要求
var italian = CultureInfo.GetCultureInfo("it-IT").TextInfo.CultureName;
Run Code Online (Sandbox Code Playgroud)
直接地。
您将在两个世界中得到相同的结果。
更改该字符串对于您的测试来说应该是一个小问题。
| 归档时间: |
|
| 查看次数: |
651 次 |
| 最近记录: |