Как мне получить доступ к функции GetGlobalResourceObject из класса, который не является страницей?
-
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"));