2016-03-28 26 views
2

için bir tanım içermiyor System.Globalization.CultureInfo sınıfı ve System.Globalization ad alanı ile ilgili bu özgün sorun var. Bir CultureInfo özelliği olan bir API çağrısından bir nesne (Diller) döndürüyorum. Bunu istemci tarafında bir IENumerable<Language> languages {get; set;} içine çekebilirim ancak var x = model.languages.First().AssociatedCulture.Name gibi bir satır ile oluşturmaya çalıştığımda aşağıdaki hatalarla karşılaştım:System.Globalization.CultureInfo Name

Hata 489 'System.Globalization.CultureInfo' yapar 'EnglishName' için bir tanım içermiyor ve 'System.Globalization.CultureInfo' türünde bir ilk argümanı kabul eden 'EnglishName' uzantısı bulunamıyor (bir yönerge veya bir montaj başvurusu kullanılarak eksik misiniz?)

Hata 488 'System.Globalization.CultureInfo' türü, başvurulan bir derlemede tanımlanmıştır. 'System.Globalization, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' derlemesine bir başvuru eklemelisiniz.

var y = new CultureInfo("en"); //works 
var z = y.Name; //works 
var x = model.languages.First().AssociatedCulture.EnglishName; //error at this line. 

ben bu hayalet hatayı anlamıyorum: Burada

Bunu denemek için yayınlanmış olan çizgilerin dizisidir. Eğer yardımcı olursa, Language.cs'i yaratan proje .NET taşınabilir v.4.5'i kullanır.

Bunu web.config derlemeler bloğuna eklemeyi denedim, ancak hiçbir zar.

<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> 

Bu sorunu daha önce hiç kimse yaşadı mı? Bir şekilde .NET taşınabilir tarafından neden oldu mu?

+0

MSDN dokümanlar, .NET Portable'ın bunu desteklediğini söylüyor. Projeye 'System.Globalization' için bir referans eklediniz mi? – Tim

cevap

3

proje başvurusu için System.Globalization'a gereksinim duyarsınız. Eğer .aspx/.cshtml dosyalarından Oluşturulan dinamik montaj için bir başvuru ekliyoruz web.config dosyayı düzenlerken

, bu (projenizden çıktı DLL için referans olan) proje başvuruları ayrı ve farklı olduğunu .

Visual Studio'da Solution Explorer aracılığıyla bir Proje Referansı ekleyin.

İlgili konular