Сообщение об ошибке доступа к строке глобального ресурса asp.net программно - PullRequest
2 голосов
/ 23 ноября 2011

Попытка получить доступ к конкретному файлу локализованного ресурса, например WebResource.en.us, который находится в моей папке App_GlobalResources, используя следующий код:

string resData = GetGlobalResourceObject("WebResource.en.us", "SomeResource").ToString();

, но это продолжает приводить меня к ошибке ниже:

Не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры.Убедитесь, что «Resources.WebResource.en-us.resources» был правильно встроен или связан со сборкой «App_GlobalResources.bpqqrnv4» во время компиляции.

Есть идеи?

1 Ответ

2 голосов
/ 23 ноября 2011

Я попробовал следующий код

Page_Load(....)
{
   /// note - i did NOT mention the culture when accesing my resourceFiles
   Debug.WriteLineIf(
       GetGlobalResourceObject("WebResource", "someResource")!=null,
       GetGlobalResourceObject("WebResource", "someResource").ToString());

   /// accessing a culture specific resource without changing Page Culture
   CultureInfo yourCI = new CultureInfo("en-US");
   Debug.WriteLine(
      HttpContext.GetGlobalResourceObject(
          "WebResource", 
          "someResource", 
          yourCI).ToString());
}

директива моей страницы

<% Page Culture="en-US" UICulture="en-US" .....  %>

Моя папка App_GlobalResources содержит два файла

  • WebResource.resx
  • WebResource.en-US.resx

Используя эти настройки и код - мой отладчик распечатал значение без проблем.При удалении WebResource.resx (мой файл ресурсов по умолчанию) тот же код выдает исключение .

Я бы предположил, что вам нужно добавить файл resx по умолчанию и удалить явное обозначение культуры в GetGlobalResourceObject (..., ..).

обновление: добавлен код для доступа к конкретному файлу культуры resx, см. Также MSDN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...