Compartilhar via


Como: Recuperar valores de recurso por programação

Você pode usar sintaxe declarativa para definir os valores das propriedades do controle de servidor ASP.NET como um valor de recurso.Como alternativa, você pode recuperar valores de recursos por código.Você pode fazer isso se o valor do recurso não é conhecido no tempo de design ou se você desejar definir o valor de recursos com base em uma condição de tempo de execução.

Você pode obter valores de recursos de arquivos de recursos locais e globais que usam métodos que retornam um objeto o qual você pode converter (cast) para o tipo apropriado.Como o ASP.NET compila recursos globais com tipagem forte, você pode como alternativa obter recursos globais usando membros fortemente tipados.

Para recuperar valores de recursos por código

  • Chame o método GetLocalResourceObject ou o GetGlobalResourceObject para ler recursos específicos de um arquivo de recurso global ou local, respectivamente.Esses métodos sobrecarregados estão disponíveis nas classes HttpContext e TemplateControl.

    The GetGlobalResourceObject método usa o nome de uma classe de recurso e o ID do recurso. O nome da classe é baseada no nome do arquivo . resx.Por exemplo, o arquivo WebResources.resx, e todos os arquivos localizados associados, são referenciados pelo nome WebResources da classe.

    O método GetLocalResourceObject utiliza um nome de recurso que representa uma propriedade ResourceKey.

    O exemplo de código a seguir mostra como obter o valor de um recurso de arquivos de recursos locais e globais.Os métodos retornam um objeto; portanto, você deve converter o recurso para o tipo apropriado.

    Um arquivo de recurso padrão local armazenado na pasta App_LocalResources especial é chamado de acordo com a página ASP.NET.Por exemplo, se o código a seguir é usado em uma página padrão.aspx, o arquivo de recurso deve ser nomeado padrão.aspx.resx.Neste exemplo, adicione um recurso string para este arquivo chamado Button1.Text com o valor "Found Resources".

    Também neste exemplo, um arquivo de recurso padrão global que é armazenado na pasta especial App_GlobalResources é denominado WebResourcesGlobal.resx.Adicione um recurso string chamado LogoUrl com o valor https://go.Microsoft.com/fwlink/?LinkId=49295 ou a URL de outra imagem.

    <%@ Page Language="VB" %>
    
    <script >
        Protected Sub Button1_Click( _
            ByVal sender As Object, ByVal e As System.EventArgs)
            Button1.Text = _
                GetLocalResourceObject("Button1.Text").ToString()
            Image1.ImageUrl = _
                CType(GetGlobalResourceObject("WebResourcesGlobal", _
               "LogoUrl"), String)
            Image1.Visible = True
        End Sub
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head >
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" >
        <div>
            <asp:Button ID="Button1"  
                OnClick="Button1_Click" 
                Text="Get Resources" />
            <asp:Image ID="Image1"  
                Visible="false" />
        </div>
        </form>
    </body>
    </html>
    
    <%@ Page Language="C#" %>
    
    <script >
        protected void Button1_Click(object sender, EventArgs e)
        {
            Button1.Text = 
                GetLocalResourceObject("Button1.Text").ToString();
            Image1.ImageUrl = 
                (String)GetGlobalResourceObject(
                "WebResourcesGlobal", "LogoUrl");
            Image1.Visible = true;
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" >
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" >
        <div>
            <asp:Button ID="Button1"  
                OnClick="Button1_Click" 
                Text="Get Resources" />
            <asp:Image ID="Image1"  
                Visible="false" />
        </div>
        </form>
    </body>
    </html>
    

Para recuperar recursos globais usando tipagem forte

  • Obtenha o recurso usando a seguinte sintaxe:

    Resources.Class.Resource
    

    Os recursos são compilados no namespace Resources, e cada recurso padrão torna-se um membro da classe Resources.Por exemplo, se você criou o arquivo de recurso padrão WebResources.resx e o arquivo contiver um recurso nomeado WelcomeText, você pode referenciar o recurso no código conforme mostrado no exemplo de código a seguir:

    Dim welcome As String
    welcome = Resources.WebResources.WelcomeText
    
    String welcome;
    welcome = Resources.WebResources.WelcomeText;
    

Consulte também

Conceitos

Visão geral sobre recursos de página da Web ASP.NET