Как мне получить доступ к функции GetGlobalResourceObject из класса, который не является страницей?

StackOverflow https://stackoverflow.com/questions/1107906

  •  12-09-2019
  •  | 
  •  

Вопрос

У меня есть класс в моем проекте asp.net я хотел бы получить доступ к GetGlobalResourceObject (который отображается на этой странице) из любого места сайта, возможно?

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

Это было полезно?

Решение

Ответ:Да, как следующее псевдо:

Resources.<The name of the resources file name>.<your resource key>;

Пример:

lblTitle.Text = Resources.MySettings.WebsiteTitle;

Resources это автоматически сгенерированное пространство имен Visual Studio, которое предоставляет все глобальные классы ресурсов и реквизиты в проекте.

Другие советы

Вы должны использовать

HttpContext.GetGlobalResourceObject("myResourceKey")

...потому что таким образом он все равно будет работать при использовании пользовательского ResourceProvider .Генератор типов по умолчанию для файлов ресурсов явно использует поставщика Resx и не будет работать, если вы реализуете что-то вроде поставщик базы данных.

Если вы находитесь на сайте, у вас есть доступ к HttpContext и вы можете использовать:

HttpContext.GetGlobalResourceObject("myResourceKey")

На некоторых фермах вам нужно будет обернуть вызов в

HttpContext.GetGlobalResourceObject("myResourceKey")

внутри блока try / catch, чтобы исправить ошибку "Не удалось найти какие-либо ресурсы, подходящие для указанной культуры или нейтральной культуры".

Я вроде как позаимствовал это у дизайнера ресурсов,

ResourceManager temp = 
  new ResourceManager("Resources.<<resource name>>", 
    System.Reflection.Assembly.Load("App_GlobalResources"));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top