Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
0 von 1 fanden dies hilfreich - Dieses Thema bewerten.

ResourceManager-Klasse

Stellt zur Laufzeit benutzerfreundlichen Zugriff auf kulturabhängige Ressourcen bereit.

System.Object
  System.Resources.ResourceManager
    System.ComponentModel.ComponentResourceManager

Namespace:  System.Resources
Assembly:  mscorlib (in mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
public class ResourceManager

Der ResourceManager-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Geschützte Methode Unterstützt von XNA Framework 2xsy4hac.PortableClassLibrary(de-de,VS.100).gif ResourceManager() Initialisiert eine neue Instanz der ResourceManager-Klasse mit Standardwerten.
Öffentliche Methode Unterstützt von XNA Framework 2xsy4hac.PortableClassLibrary(de-de,VS.100).gif ResourceManager(Type) Erstellt einen ResourceManager, der Ressourcen in Satellitenassemblys auf der Grundlage der Informationen aus dem angegebenen Type sucht.
Öffentliche Methode Unterstützt von XNA Framework 2xsy4hac.PortableClassLibrary(de-de,VS.100).gif ResourceManager(String, Assembly) Initialisiert eine neue Instanz der ResourceManager-Klasse zum Suchen von Ressourcen in Dateien mit dem angegebenen Stammnamen unter Verwendung der angegebenen Assembly.
Öffentliche Methode Unterstützt von XNA Framework ResourceManager(String, Assembly, Type) Initialisiert eine neue Instanz der ResourceManager-Klasse zum Suchen von Ressourcen in Dateien mit dem angegebenen Stammnamen mithilfe der angegebenen Assembly.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Eigenschaft Unterstützt von XNA Framework BaseName Ruft den Stammnamen der Ressourcendateien ab, die der ResourceManager nach Ressourcen durchsucht.
Geschützte Eigenschaft FallbackLocation Ruft den Speicherort für das Abrufen von neutralen Fallbackressourcen ab oder legt diesen fest.
Öffentliche Eigenschaft Unterstützt von XNA Framework IgnoreCase Ruft einen booleschen Wert ab, der angibt, ob die aktuelle Instanz von ResourceManager die Ressourcensuche ohne Berücksichtigung der Groß- und Kleinschreibung in der GetString-Methode und der GetObject-Methode zulässt, oder legt diesen fest.
Öffentliche Eigenschaft Unterstützt von XNA Framework ResourceSetType Ruft den Type des ResourceSet ab, mit dem der ResourceManager ein ResourceSet-Objekt erstellt.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Methode Statischer Member Unterstützt von XNA Framework CreateFileBasedResourceManager Gibt einen ResourceManager zurück, der anstelle des Assemblymanifests ein bestimmtes Verzeichnis nach Ressourcen durchsucht.
Öffentliche Methode Unterstützt von XNA Framework 2xsy4hac.PortableClassLibrary(de-de,VS.100).gif Equals(Object) Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte Methode Unterstützt von XNA Framework 2xsy4hac.PortableClassLibrary(de-de,VS.100).gif Finalize Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.)
Öffentliche Methode Unterstützt von XNA Framework 2xsy4hac.PortableClassLibrary(de-de,VS.100).gif GetHashCode Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Geschützte Methode Statischer Member Unterstützt von XNA Framework GetNeutralResourcesLanguage Gibt die CultureInfo für die neutralen Ressourcen der Hauptassembly zurück, indem der Wert des NeutralResourcesLanguageAttribute in einer angegebenen Assembly gelesen wird.
Öffentliche Methode Unterstützt von XNA Framework GetObject(String) Gibt den Wert der angegebenen Object-Ressource zurück.
Öffentliche Methode Unterstützt von XNA Framework GetObject(String, CultureInfo) Ruft den Wert der Object-Ressource ab, die für die angegebene Kultur lokalisiert wurde.
Geschützte Methode Unterstützt von XNA Framework GetResourceFileName Generiert den Ressourcendateinamen für die angegebene CultureInfo.
Öffentliche Methode Unterstützt von XNA Framework GetResourceSet Ruft das ResourceSet für eine bestimmte Kultur ab.
Geschützte Methode Statischer Member Unterstützt von XNA Framework GetSatelliteContractVersion Gibt die Version zurück, die durch SatelliteContractVersionAttribute in der angegebenen Assembly festgelegt wird.
Öffentliche Methode GetStream(String) Gibt ein UnmanagedMemoryStream-Objekt aus der angegebenen Ressource zurück.
Öffentliche Methode GetStream(String, CultureInfo) Gibt mithilfe der angegebenen Kultur ein UnmanagedMemoryStream-Objekt aus der angegebenen Ressource zurück.
Öffentliche Methode Unterstützt von XNA Framework 2xsy4hac.PortableClassLibrary(de-de,VS.100).gif GetString(String) Gibt den Wert der angegebenen String-Ressource zurück.
Öffentliche Methode Unterstützt von XNA Framework 2xsy4hac.PortableClassLibrary(de-de,VS.100).gif GetString(String, CultureInfo) Ruft den Wert der String-Ressource ab, die für die angegebene Kultur lokalisiert wurde.
Öffentliche Methode Unterstützt von XNA Framework 2xsy4hac.PortableClassLibrary(de-de,VS.100).gif GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte Methode Unterstützt von XNA Framework InternalGetResourceSet Stellt die Implementierung zum Suchen eines ResourceSet bereit.
Geschützte Methode Unterstützt von XNA Framework 2xsy4hac.PortableClassLibrary(de-de,VS.100).gif MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode Unterstützt von XNA Framework ReleaseAllResources Weist den ResourceManager an, Close für alle ResourceSet-Objekte aufzurufen und alle Ressourcen freizugeben.
Öffentliche Methode Unterstützt von XNA Framework 2xsy4hac.PortableClassLibrary(de-de,VS.100).gif ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang
  Name Beschreibung
Geschütztes Feld Unterstützt von XNA Framework BaseNameField Gibt den Stammnamen der Ressourcendateien an, die der ResourceManager nach Ressourcen durchsucht.
Öffentliches Feld Statischer Member Unterstützt von XNA Framework HeaderVersionNumber Ein konstanter readonly-Wert, der die Version der Ressourcendateiheader angibt, die die aktuelle Implementierung von ResourceManager interpretieren und erstellen kann.
Öffentliches Feld Statischer Member Unterstützt von XNA Framework MagicNumber Enthält die Nummer für die Bezeichnung von Ressourcendateien.
Geschütztes Feld Unterstützt von XNA Framework MainAssembly Gibt die Haupt-Assembly an, die die Ressourcen enthält.
Geschütztes Feld Unterstützt von XNA Framework ResourceSets Veraltet. Enthält eine Hashtable die eine Zuordnung von Kulturen zu ResourceSet-Objekten zurückgibt.
Zum Seitenanfang

Die ResourceManager-Klasse durchsucht kulturabhängige Ressourcen, stellt Ressourcenfallback bereit, wenn eine lokalisierte Ressource nicht vorhanden ist, und unterstützt das Serialisieren von Ressourcen.

Die ResourceManager-Klasse ruft Ressourcen aus binären Ressourcendateien (.resources) ab. In der Regel werden diese Ressourcendateien entweder von einem Sprachcompiler oder Assembly Linker (AL.exe) in eine Assembly eingebettet, obwohl die CreateFileBasedResourceManager-Methode es einem ResourceManager-Objekt ermöglicht, Ressourcen direkt aus einer RESOURCES-Datei, die nicht in eine Assembly eingebettet ist, abzurufen. Um eine RESOURCES-Datei aus einer Ressourcendatei entweder im Text- oder XML-Ressourcenformat (.txt bzw. .resx) zu erstellen, kompilieren Sie sie mit Resource File Generator (Resgen.exe). Für RESX-Dateien, die in einem Visual Studio-Projekt enthalten sind, behandelt Visual Studio Kompilierung als Teil des Buildprozesses automatisch.

Mit den Methoden des ResourceManager kann ein Aufrufer mit der GetObject-Methode und der GetString-Methode auf die Ressourcen für eine bestimmte Kultur zugreifen. In der Standardeinstellung geben diese Methoden die Ressource für die Kultur zurück, die durch die aktuelle Kultur des aufrufenden Threads bestimmt werden. (Weitere Informationen finden Sie im Thread.CurrentUICulture.) Aufrufer können mit der ResourceManager.GetResourceSet-Methode ein ResourceSet abrufen, das die Ressourcen für eine bestimmte Kultur darstellt und ignoriert die Fallbackregeln der Kultur. Mit dem ResourceSet können Sie dann auf die Ressourcen, die für diese Kultur lokalisiert sind, nach Namen zugreifen.

Es empfiehlt sich, Ressourcen für jede Sprache oder zumindest für eine sinnvolle Auswahl von Sprachen zu erstellen. Die Namen der Ressourcendateien entsprechen der Benennungskonvention Basisname.Kulturname.Ressourcen, wobei Basisname je nach erwünschter Genauigkeit für den Namen der Anwendung oder den Namen einer Klasse steht. Mit der Name-Eigenschaft von CultureInfo wird der Kulturname bestimmt. Eine Ressource für die neutrale Kultur, die von InvariantCulture zurückgegeben wird, muss nach dem Muster Basisname.Ressourcen benannt werden.

Angenommen, eine Assembly verfügt über mehrere Ressourcen in einer Ressourcendatei mit dem Basisnamen "MyResources". Die Namen dieser Ressourcendateien lauten z. B. "MyResources.ja-JP.resources", "MyResources.de.resources", "MyResources.zh-CHS.resources" oder "MyResources.fr-BE.resources" und enthalten jeweils die Ressourcen für Japanisch, Deutsch, Chinesisch (vereinfacht) und Französisch (Belgien). Die Standardressourcendatei sollte den Namen MyResources.resources erhalten. Die kulturspezifischen Ressourcendateien werden im Allgemeinen in Satellitenassemblys für jede einzelne Kultur gepackt. Die Standardressourcendatei muss sich in der Hauptassembly befinden.

Angenommen, es wurde ein ResourceManager erstellt, um die Ressourcen mit diesem Basisnamen darzustellen. Mit ResourceManager können Sie ein ResourceSet abrufen, das "MyResources.ja-JP.resources" durch Aufruf von GetResourceSet(new CultureInfo ("ja-JP"), TRUE, FALSE) kapselt. Wenn Sie wissen, dass "MyResources" die Ressource "TOOLBAR_ICON" enthält, können Sie den Wert der Ressource, die für Japan lokalisiert wurde, abrufen, indem Sie GetObject("TOOLBAR_ICON", new CultureInfo("ja-JP")) aufrufen.

Obwohl dies für die meisten Verwendungszwecke von ResourceManager nicht erforderlich ist, sollten allgemein zugängliche Assemblys das SatelliteContractVersionAttribute verwenden, um mehrere Versionen der Hauptassembly zu unterstützen, ohne dass die Satellitenassemblys erneut bereitgestellt werden müssen, sowie das NeutralResourcesLanguageAttribute, um das Suchen einer nicht vorhandenen Satellitenassembly zu verhindern.

Weitere Informationen über die Unterstützung mehrerer Versionen von Satellitenassemblys finden Sie unter Abrufen von Ressourcen in Satellitenassemblys. Weitere Informationen über das Erstellen von Satellitenassemblys finden Sie unter Erstellen von Satellitenassemblys. Hinweise zum Lokalisieren von Windows Forms-Dialogfeldern finden Sie unter dem Winres.exe (Windows Forms Resource Editor-Tool)-Tool in Windows Software Development Kit (SDK).

Weitere Informationen über das Einrichten und Erstellen von Ressourcen finden Sie unter Ressourcen in Anwendungen.

Warnhinweis Vorsicht

Das Verwenden eigenständiger RESOURCES-Dateien in einer ASP.NET-Anwendung unterbricht die XCOPY-Bereitstellung, da die Ressourcen gesperrt bleiben, bis sie explizit durch die ReleaseAllResources-Methode freigegeben werden. Wenn Sie Ressourcen in ASP.NET-Anwendungen bereitstellen möchten, sollten Sie die RESOURCES-Dateien in Satellitenassemblys kompilieren.

Warnhinweis Vorsicht

Auf als privat gekennzeichnete Ressourcen kann nur innerhalb der Assembly zugegriffen werden, in der sie sich befinden. Da die Satellitenassembly keinen Code enthält, sind die Ressourcen, die in dieser privat sind, durch keinen Mechanismus verfügbar. Daher sollten Ressourcen in Satellitenassemblys immer öffentlich sein, damit aus der Hauptassembly auf diese zugegriffen werden kann. Auf die in der Hauptassembly eingebetteten Ressourcen kann von der Hauptassembly zugegriffen werden, unabhängig davon, ob diese privat oder öffentlich sind.

< satelliteassemblies >-Konfigurationsdateiknoten

Für ausführbare Dateien, die von einer Website bereitgestellt und ausgeführt werden (HREF-EXE-Dateien), kann die ResourceManager-Klasse eine Überprüfung auf Satellitenassemblys im Web ausführen, wodurch die Leistung der Anwendung beeinträchtigt werden kann. Sie können diese Überprüfung auf die Satellitenassemblys beschränken, die mit der Anwendung bereitgestellt wurden, wodurch das Leistungsproblem behoben wird. Erstellen Sie hierzu einen <satelliteassemblies>-Knoten in der Anwendungskonfigurationsdatei, um anzugeben, dass eine spezifische Gruppe von Kulturen für die Anwendung bereitgestellt wurde und dass die ResourceManager-Klasse keine Überprüfung auf Kulturen ausführen soll, die nicht in diesem Knoten aufgelistet sind.

Hinweis Hinweis

Als Alternative ist es dem Erstellen eines <satelliteassemblies>-Knotens vorzuziehen, das ClickOnce-Bereitstellungsmanifest-Feature zu verwenden.

Erstellen Sie einen dem folgenden Codebeispiel ähnlichen Konfigurationsdateiabschnitt:

<?xml version ="1.0"?>
<configuration>
    <satelliteassemblies>
        <assembly name="MainAssemblyName, Version=versionNumber, Culture=neutral, PublicKeyToken=null|yourPublicKeyToken">
            <culture>cultureName1</culture>
            <culture>cultureName2</culture>
            <culture>cultureName3</culture>
        </assembly>
    </satelliteassemblies>
</configuration>

Führen Sie in der Konfigurationsdatei Folgendes aus:

  • Geben Sie einen oder mehrere <assembly>-Knoten für jede bereitgestellte Hauptassembly an, wobei das <assembly>-Knotenattribut einen vollqualifizierten Assemblynamen angibt. Geben Sie anstelle von MainAssemblyName den Namen der Hauptassembly an, und geben Sie die Attributwerte Version, PublicKeyToken und Culture an, die der Hauptassembly entsprechen.

    Geben Sie für das Version-Attribut die Versionsnummer der Assembly an. Zum Beispiel könnte die erste Version der Assembly Versionsnummer 1.0.0.0 sein.

    Sie können für das PublicKeyToken-Attribut "null" angeben, wenn die Assembly nicht mit einem starken Namen signiert ist, oder das öffentliche Schlüsseltoken, wenn die Assembly signiert ist.

    Geben Sie für das Culture-Attribut das Schlüsselwort "neutral" an, um die Hauptassembly festzulegen, und veranlassen Sie, dass die ResourceManager-Klasse nur die in den <culture>-Knoten aufgelisteten Kulturen sucht.

    Weitere Informationen zu vollqualifizierten Assemblynamen finden Sie unter Assemblynamen. Weitere Informationen zu Assemblys mit starken Namen finden Sie unter Erstellen und Verwenden von Assemblys mit starkem Namen.

  • Geben Sie einen oder mehrere <culture>-Knoten mit einem bestimmten Kulturnamen, z. B. "fr-FR", oder einem neutralen Kulturnamen, z. B. "fr", an.

Wenn Ressourcen für eine Assembly benötigt werden, die unter dem <satelliteassemblies>-Knoten nicht aufgeführt ist, sucht die ResourceManager-Klasse entsprechend den Standardsuchregeln nach Kulturen.

Das folgende Codebeispiel veranschaulicht die Verwendung einer expliziten Kultur. Außerdem ruft die implizite aktuelle UI Zeichenfolgenressourcen aus einer Hauptassembly und einer Satellitenassembly ab. Weitere Informationen finden Sie im Unterthema "Verzeichnispfade für Satellitenassemblys, die nicht im globalen Assemblycache installiert sind" im Thema Erstellen von Satellitenassemblys.


// This code example demonstrates the ResourceManager() 
// constructor and ResourceManager.GetString() method.

using System;
using System.Resources;
using System.Reflection;
using System.Threading;
using System.Globalization;

/*
Perform the following steps to use this code example:

Main assembly:
1) In a main directory, create a file named "rmc.txt" that 
contains the following resource strings:

day=Friday
year=2006
holiday="Cinco de Mayo"

2) Use the resgen.exe tool to generate the "rmc.resources" 
resource file from the "rmc.txt" input file.

> resgen rmc.txt

Satellite Assembly:
3) Create a subdirectory of the main directory and name the 
subdirectory "es-MX", which is the culture name of the 
satellite assembly.

4) Create a file named "rmc.es-MX.txt" that contains the 
following resource strings:

day=Viernes
year=2006
holiday="Cinco de Mayo"

5) Use the resgen.exe tool to generate the "rmc.es-MX.resources" 
resource file from the "rmc.es-MX.txt" input file.

> resgen rmc.es-MX.txt

6) Use the al.exe tool to create a satellite assembly. If the 
base name of the application is "rmc", the satellite assembly 
name must be "rmc.resources.dll". Also, specify the culture, 
which is es-MX.

> al /embed:rmc.es-MX.resources /c:es-MX /out:rmc.resources.dll 

7) Assume the filename for this code example is "rmc.cs". Compile 
rmc.cs and embed the main assembly resource file, rmc.resources, in 
the executable assembly, rmc.exe:

>csc /res:rmc.resources rmc.cs

8) Execute rmc.exe, which obtains and displays the embedded 
resource strings.
*/

class Sample 
{
    public static void Main() 
    {
    string day;
    string year;
    string holiday;
    string celebrate = "{0} will occur on {1} in {2}.\n";

// Create a resource manager. The GetExecutingAssembly() method
// gets rmc.exe as an Assembly object.

    ResourceManager rm = new ResourceManager("rmc", 
                             Assembly.GetExecutingAssembly());

// Obtain resources using the current UI culture.
    Console.WriteLine("Obtain resources using the current UI culture.");

// Get the resource strings for the day, year, and holiday 
// using the current UI culture. Use those strings to 
// display a message.

    day  = rm.GetString("day");
    year = rm.GetString("year");
    holiday = rm.GetString("holiday");
    Console.WriteLine(celebrate, holiday, day, year);

// Obtain the es-MX culture.
    CultureInfo ci = new CultureInfo("es-MX");

// Get the resource strings for the day, year, and holiday 
// using the specified culture. Use those strings to 
// display a message. 

// Obtain resources using the es-MX culture.
    Console.WriteLine("Obtain resources using the es-MX culture.");

    day  = rm.GetString("day", ci);
    year = rm.GetString("year", ci);
    holiday = rm.GetString("holiday", ci);

// ---------------------------------------------------------------
// Alternatively, comment the preceding 3 code statements and 
// uncomment the following 4 code statements:
// ----------------------------------------------------------------

// Set the current UI culture to "es-MX" (Spanish-Mexico).
//    Thread.CurrentThread.CurrentUICulture = ci;

// Get the resource strings for the day, year, and holiday 
// using the current UI culture. Use those strings to 
// display a message. 
//    day  = rm.GetString("day");
//    year = rm.GetString("year");
//    holiday = rm.GetString("holiday");
// ---------------------------------------------------------------

// Regardless of the alternative that you choose, display a message 
// using the retrieved resource strings.
    Console.WriteLine(celebrate, holiday, day, year);
    }
}

/*
This code example produces the following results:

>rmc
Obtain resources using the current UI culture.
"5th of May" will occur on Friday in 2006.

Obtain resources using the es-MX culture.
"Cinco de Mayo" will occur on Viernes in 2006.

*/


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Unterstützt in:

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Dieser Typ ist threadsicher.

Datum

Versionsgeschichte

Grund

Dezember 2010

Im Abschnitt "Hinweise" wurde darauf hingewiesen, dass Ressourcen-Manager nur mit RESOURCES-Dateien funktioniert.

Kundenfeedback.

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ