Как получить доступ к функции GetGlobalResourceObject из класса, который не является страницей? - PullRequest
10 голосов
/ 10 июля 2009

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

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

Ответы [ 5 ]

20 голосов
/ 10 июля 2009

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

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

Пример:

lblTitle.Text = Resources.MySettings.WebsiteTitle;

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

15 голосов
/ 24 февраля 2010

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

HttpContext.GetGlobalResourceObject("myResourceKey")

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

1 голос
/ 30 мая 2013

На некоторых фермах вам нужно заключить вызов в

HttpContext.GetGlobalResourceObject("myResourceKey")

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

1 голос
/ 10 июля 2009

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

HttpContext.GetGlobalResourceObject("myResourceKey")
0 голосов
/ 21 сентября 2010

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

ResourceManager temp = 
  new ResourceManager("Resources.<<resource name>>", 
    System.Reflection.Assembly.Load("App_GlobalResources"));
...