对于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’(您缺少使用指令还是程序集引用?)
错误488类型'System.Globalization.CultureInfo‘是在未引用的程序集中定义的。您必须添加对程序集'System.Globalization,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f7f11d50a3a‘的引用。
下面是我运行的几行代码的顺序:
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便携引起的吗?
发布于 2016-03-28 19:18:35
您需要一个对System.Globalization的项目引用。
在编辑web.config文件时,您要为从.aspx/.cshtml文件生成的动态程序集添加一个引用,这与您的项目引用(它们是来自项目的输出DLL的引用)是独立的和不同的。
通过解决方案资源管理器在Visual中添加项目引用。
https://stackoverflow.com/questions/36269311
复制相似问题