Como faço para acessar a função GetGlobalResourceObject de uma classe que não é uma página?

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

  •  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.

Foi útil?

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"));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top