.NET 中系统程序集的 CultureName

hou*_*uen 5 .net c# mono

在用 C# 编写一些代码处理程序集时,我注意到Assembly对象的字段值不一致(System程序集示例):

> typeof(string).Assembly.FullName
"mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
Run Code Online (Sandbox Code Playgroud)

但是当直接访问对象的CultureName字段时AssemblyName,它的值为空字符串:

> typeof(string).Assembly.GetName().CultureName
""
Run Code Online (Sandbox Code Playgroud)

当我在 Linux ( mono 3.99)上运行相同的测试时,我得到了另一个结果:

> typeof(string).Assembly.GetName().CultureName
"neutral"
Run Code Online (Sandbox Code Playgroud)

为什么 .NET 会这样?我在 msdn 上找不到关于类中CultureName字段的默认值AssemblyName或空字符串含义的任何信息。空字符串是否总是指“中性”文化名称?