Comment : récupérer des valeurs de ressources par programme

Mise à jour : novembre 2007

Vous pouvez utiliser la syntaxe déclarative pour affecter une valeur de ressource aux propriétés du contrôle serveur ASP.NET. Vous pouvez également récupérer les valeurs de ressources par programme. Vous pouvez effectuer ceci si la valeur de ressource n'est pas connue au moment du design ou si vous souhaitez définir la valeur de ressource selon une condition d'exécution.

Vous pouvez obtenir des valeurs à partir des fichiers de ressources locales et globales qui utilisent des méthodes retournant un objet dont vous pouvez effectuer un cast en type approprié. Dans la mesure où ASP.NET compile des ressources globales avec le typage fort, vous pouvez également obtenir des ressources globales à l'aide de membres fortement typés.

Pour récupérer des valeurs de ressources par programme

  • Appelez la méthode GetLocalResourceObject ou GetGlobalResourceObject pour lire les ressources spécifiques d'un fichier de ressources globales ou locales, respectivement. Ces méthodes surchargées sont disponibles dans les classes HttpContext et TemplateControl.

    La méthode GetGlobalResourceObject prend le nom d'une classe de ressource et l'ID de la ressource. Le nom de classe est basé sur le nom de fichier .resx. Par exemple, le fichier WebResources.resx, et tout fichier localisé associé, est référencé par le nom de classe WebResources.

    La méthode GetLocalResourceObject prend un nom de ressource représentant une propriété ResourceKey.

    L'exemple de code suivant montre comment obtenir la valeur d'une ressource d'un fichier de ressources locales et globales. Les méthodes retournent un objet ; par conséquent, vous devez effectuer un cast de la ressource en un type approprié.

    Un fichier de ressources locales par défaut stocké dans le dossier App_LocalResources spécial est nommé selon la page ASP.NET. Par exemple, si le code suivant est utilisé dans une page Default.aspx, le fichier de ressources doit être nommé Default.aspx.resx. Pour cet exemple, ajoutez à ce fichier une ressource de type chaîne nommée Button1.Text avec la valeur "Found Resources".

    Pour cet exemple également, un fichier de ressources globales par défaut stocké dans le dossier App_GlobalResources spécial est nommé WebResourcesGlobal.resx. Ajoutez une ressource de type chaîne nommée LogoUrl avec la valeur https://go.microsoft.com/fwlink/?LinkId=49295 ou l'URL d'une autre image.

    <%@ 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>
    

Pour récupérer des ressources globales à l'aide du typage fort

  • Obtenez la ressource à l'aide de la syntaxe suivante :

    Resources.Class.Resource
    

    Les ressources sont compilées dans l'espace de noms Resources et chaque ressource par défaut devient un membre de la classe Resources. Par exemple, si vous avez créé le fichier de ressources par défaut WebResources.resx et si le fichier contient une ressource nommée WelcomeText, vous pouvez référencer la ressource dans le code comme indiqué dans l'exemple de code suivant :

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

Voir aussi

Concepts

Vue d'ensemble des ressources des pages Web ASP.NET