我对 System.Globalization.CultureInfo 类和 System.Globalization 命名空间有这个特殊问题。我从具有 CultureInfo 属性的 API 调用返回一个对象(语言)。我能够成功地将其在客户端拉入IENumerable<Language> languages {get; set;}
但是当我尝试用诸如var x = model.languages.First().AssociatedCulture.Name
我遇到了以下错误:
错误 489“System.Globalization.CultureInfo”不包含“EnglishName”的定义,并且找不到接受“System.Globalization.CultureInfo”类型的第一个参数的扩展方法“EnglishName”(您是否缺少 using 指令或装配参考?)
错误 488 类型“System.Globalization.CultureInfo”是在未引用的程序集中定义的。您必须添加对程序集“System.Globalization,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”的引用。
以下是我尝试执行此操作所运行的行序列:
var y = new CultureInfo("en"); //works
var z = y.Name; //works
var x = model.languages.First().AssociatedCulture.EnglishName; //error at this line.
我不明白这个幻象错误。如果有帮助,创建 Language.cs 的项目将使用 .NET 可移植 v.4.5。
我尝试将其添加到 web.config 程序集块中,但没有成功。
<compilation defaultLanguage="c#" debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Globalization , Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Helpers, Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</assemblies>
<buildProviders>
<add extension=".cshtml" type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</buildProviders>
</compilation>
以前有人遇到过这个问题吗?它是否是由 .NET 可移植引起的?