Como faço para acessar a função GetGlobalResourceObject de uma classe que não é uma página?
-
12-09-2019 - |
Pergunta
Eu tenho uma classe no meu asp.net proj, gostaria de obter acesso GetGlobalResourceObject (essa página expõe), a partir de qualquer lugar no site, é possível?
Em outras palavras, eu quero acessar os recursos globais de uma classe que não é uma página Não me importa como.
Solução
Resposta: Sim, da seguinte forma pseudo:
Resources.<The name of the resources file name>.<your resource key>;
Exemplo:
lblTitle.Text = Resources.MySettings.WebsiteTitle;
Resources
é um auto namespace gerado Visual-Studio que expõe todas as classes de recursos globais e adereços no projeto.
Outras dicas
Você deve usar
HttpContext.GetGlobalResourceObject("myResourceKey")
... porque dessa forma ele irá ainda trabalhar ao usar um ResourceProvider personalizado. O tipo de gerador padrão para arquivos de recurso explicitamente usa o provedor Resx e não vai funcionar se você implementar algo como um provedor de banco de dados .
Se você está no site você tem acesso a HttpContext e pode usar:
HttpContext.GetGlobalResourceObject("myResourceKey")
Em algumas fazendas você vai precisar para embrulhar a chamada para
HttpContext.GetGlobalResourceObject("myResourceKey")
dentro de um bloco try / catch para obtê-lo sobre o "Não foi possível encontrar quaisquer recursos apropriados para a cultura especificada ou o neutro cultura" de erro.
Eu levei um bocado isso a partir do designer de recursos,
ResourceManager temp =
new ResourceManager("Resources.<<resource name>>",
System.Reflection.Assembly.Load("App_GlobalResources"));