Gewusst wie: Programmgesteuertes Abrufen von Ressourcenwerten

Aktualisiert: November 2007

Sie können die Werte für Eigenschaften von ASP.NET-Serversteuerelementen mithilfe von deklarativer Syntax auf einen Ressourcenwert festlegen. Wahlweise können Sie die Ressourcenwerte auch programmgesteuert abrufen. Diese Methode eignet sich unter Umständen, wenn der Ressourcenwert zur Entwurfszeit noch unbekannt ist oder wenn Sie den Ressourcenwert auf Grundlage einer Laufzeitbedingung festlegen möchten.

Sie können Ressourcenwerte sowohl von lokalen als auch globalen Ressourcendateien abrufen, sofern diese Methoden verwenden, von denen ein Objekt zurückgegeben wird, das in den geeigneten Typ umgewandelt werden kann. Da ASP.NET globale Ressourcen beim Kompilieren stark typisiert, können Sie globale Ressourcen wahlweise auch mithilfe von stark typisierten Membern abrufen.

So rufen Sie Ressourcenwerte programmgesteuert ab

  • Rufen Sie die GetLocalResourceObject-Methode oder die GetGlobalResourceObject-Methode auf, um bestimmte Ressourcen jeweils aus einer globalen oder lokalen Ressourcendatei zu lesen. Diese überladenen Methoden sind in der HttpContext-Klasse und in der TemplateControl-Klasse verfügbar.

    Die GetGlobalResourceObject-Methode akzeptiert den Namen einer Ressourcenklasse und die Ressourcen-ID. Der Klassenname beruht auf dem Namen der RESX-Datei. Beispielsweise wird auf die Datei WebResources.resx und alle zugeordneten lokalisierten Dateien durch den Klassennamen WebResources verwiesen.

    Die GetLocalResourceObject-Methode akzeptiert einen Ressourcennamen, der eine ResourceKey-Eigenschaft darstellt.

    Im folgenden Codebeispiel wird veranschaulicht, wie der Wert einer Ressource aus einer lokalen und einer globalen Ressourcendatei abgerufen wird. Da die Methoden ein Objekt zurückgeben, muss die Ressource in den passenden Typ umgewandelt werden.

    Eine lokale Standardressourcendatei, die im Spezialordner App_LocalResources gespeichert ist, wird nach der ASP.NET-Seite benannt. Wenn der folgende Code beispielsweise auf der Seite Default.aspx verwendet wird, muss die Ressourcendatei Default.aspx.resx lauten. Fügen Sie der Datei in diesem Beispiel die Zeichenfolgenressource Button1.Text mit dem Wert "Found Resources" hinzu.

    Für dieses Beispiel wird zudem einer globalen Standardressourcendatei, die im Spezialordner App_GlobalResources gespeichert ist, der Name WebResourcesGlobal.resx zugewiesen. Fügen Sie die Zeichenfolgenressource LogoUrl mit dem Wert https://go.microsoft.com/fwlink/?LinkId=49295 oder dem URL eines anderen Bilds hinzu.

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

So rufen Sie globale Ressourcen mit starker Typisierung ab

  • Rufen Sie die Ressource mit der folgenden Syntax ab:

    Resources.Class.Resource
    

    Ressourcen werden in den Namespace Resources kompiliert, und jede Standardressource wird Member der Resources-Klasse. Wenn Sie beispielsweise die Standardressourcendatei WebResources.resx erstellt haben und die Datei die Ressource WelcomeText enthält, können Sie auf die Ressource im Code wie im folgenden Codebeispiel veranschaulicht verweisen:

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

Siehe auch

Konzepte

Übersicht über das Verwenden von Ressourcen für ASP.NET-Webseiten