2017-01-18 15 views
0

Я добавил файл ресурсов, который должен поддерживать глобализацию.Проблема при доступе к файлам файлов ресурсов в веб-API

enter image description here

В Global.asax я получил информацию культуры.

protected void Application_BeginRequest() 
    { 
     var cul = Context.Request.Headers["culture"]; 
     if (cul != null && !string.IsNullOrEmpty(cul)) 
     { 
      var culture = new CultureInfo(cul); 
      //Thread.CurrentThread.CurrentCulture = culture; 
      Thread.CurrentThread.CurrentUICulture = culture; 
     } 
    } 

Теперь я пытаюсь получить доступ к нему, как:

ResourceManager rm = new ResourceManager("Resource", System.Reflection.Assembly.GetExecutingAssembly()); 
string err = rm.GetString("ERROR_1"); 

Я получаю ошибку является:

{"Could not find any resources appropriate for the specified culture or the neutral culture. Make sure \"Resource.resources\" was correctly embedded or linked into assembly \"...\" at compile time, or that all the satellite assemblies required are loadable and fully signed."} System.SystemException {System.Resources.MissingManifestResourceException}

код и ресурс имеет то же пространство имен.

+0

У вас нет нейтральной культуры. Добавьте файл Resource.resx – Remy

ответ

0

У меня нет большого опыта работы с ResourceManager, но из официальной документации я не думаю, что использование рефлексии для получения сборки предназначено. В нем конкретно упоминается, что вторым параметром - сборкой должна быть «сборка, в которой находится файл .resources по умолчанию». Позднее он рассказывает об установке Thread.CurrentThread.CurrentUICulture. Вы можете найти всю эту информацию в msdn: https://msdn.microsoft.com/en-us/library/system.resources.resourcemanager(v=vs.110).aspx

Однако вы можете ознакомиться с документацией msdn по локализации веб-страниц asp.net: https://msdn.microsoft.com/en-us/library/ms227427.aspx. Кажется, у вас есть некоторые специализированные механизмы, которые могут быть очень полезны для вас.

+0

Похоже, что файл ресурсов по умолчанию должен был присутствовать, все, что мне нужно было сделать, это «Resource.ERROR_1', чтобы получить значение. Соответствующий файл resouce выбирается на основе культуры потоков. – benjamin54

Смежные вопросы