Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Fast jede Produktionsqualitäts-App muss Ressourcen verwenden. Eine Ressource ist alle nicht ausführbaren Daten, die logisch mit einer App bereitgestellt werden. Eine Ressource kann in einer App als Fehlermeldungen oder als Teil der Benutzeroberfläche angezeigt werden. Ressourcen können Daten in verschiedenen Formen enthalten, einschließlich Zeichenfolgen, Bildern und gespeicherten Objekten. (Zum Schreiben dauerhafter Objekte in eine Ressourcendatei müssen die Objekte serialisierbar sein.) Wenn Sie Ihre Daten in einer Ressourcendatei speichern, können Sie die Daten ändern, ohne die gesamte App neu zu kompilieren. Außerdem können Sie Daten an einem einzigen Speicherort speichern und die Notwendigkeit vermeiden, hartcodierte Daten zu verwenden, die an mehreren Speicherorten gespeichert sind.
.NET bietet umfassende Unterstützung für die Erstellung und Lokalisierung von Ressourcen. Darüber hinaus unterstützt .NET ein einfaches Modell zum Packen und Bereitstellen lokalisierter Ressourcen.
Erstellen und Lokalisieren von Ressourcen
In einer nicht lokalisierten App können Sie Ressourcendateien als Repository für App-Daten verwenden, insbesondere für Zeichenfolgen, die andernfalls an mehreren Speicherorten im Quellcode hartcodiert werden können. Am häufigsten erstellen Sie Ressourcen als Textdateien (.txt) oder XML-Dateien (RESX) und verwenden Resgen.exe (Ressourcendateigenerator), um sie in binär.resources-Dateien zu kompilieren. Diese Dateien können dann von einem Sprachcompiler in die ausführbare Datei der App eingebettet werden. Weitere Informationen zum Erstellen von Ressourcen finden Sie unter Erstellen von Ressourcendateien.
Sie können die Ressourcen Ihrer App auch für bestimmte Kulturen lokalisieren. Auf diese Weise können Sie lokalisierte (übersetzte) Versionen Ihrer Apps erstellen. Wenn Sie eine App entwickeln, die lokalisierte Ressourcen verwendet, legen Sie eine Kultur fest, die als neutrale oder Fallbackkultur dient, deren Ressourcen verwendet werden, wenn keine geeigneten Ressourcen verfügbar sind. In der Regel werden die Ressourcen der neutralen Kultur in der ausführbaren Datei der App gespeichert. Die verbleibenden Ressourcen für einzelne lokalisierte Kulturen werden in eigenständigen Satellitenassemblys gespeichert. Weitere Informationen finden Sie unter Erstellen von Satellitenassemblys.
Verpacken und Bereitstellen von Ressourcen
Sie stellen lokalisierte App-Ressourcen in Satellitenassemblys bereit. Eine Satellitenassembly enthält die Ressourcen einer einheitlichen Kultur; sie enthält keinen App-Code. Im Bereitstellungsmodell der Satellitenassembly erstellen Sie eine App mit einer Standardassembly (in der Regel die Hauptassembly) und einer Satellitenassembly für jede Kultur, die die App unterstützt. Da die Satellitenassemblys nicht Teil der Hauptassembly sind, können Sie Ressourcen, die einer bestimmten Kultur entsprechen, problemlos ersetzen oder aktualisieren, ohne die Hauptassembly der App zu ersetzen.
Ermitteln Sie sorgfältig, aus welchen Ressourcen die Standardressourcenassembly Ihrer App besteht. Da es sich um einen Teil der Hauptbaugruppe handelt, erfordert jede Änderung daran, dass Sie die Hauptbaugruppe ersetzen. Wenn Sie keine Standardressource bereitstellen, wird eine Ausnahme ausgelöst, wenn der Ressourcenfallbackprozess versucht, sie zu finden. In einer gut gestalteten App sollte die Verwendung von Ressourcen niemals eine Ausnahme auslösen.
Weitere Informationen finden Sie im Artikel " Packen und Bereitstellen von Ressourcen" .
Abrufen von Ressourcen
Zur Laufzeit lädt eine App basierend auf der durch die CultureInfo.CurrentUICulture Eigenschaft angegebenen Kultur die entsprechenden lokalisierten Ressourcen pro Thread. Dieser Eigenschaftswert wird wie folgt abgeleitet:
Durch direktes Zuweisen eines CultureInfo-Objekts, das die lokalisierte Kultur darstellt, zur Thread.CurrentUICulture-Eigenschaft.
Wenn eine Kultur nicht explizit zugewiesen wird, rufen Sie die Standardmäßige Thread-UI-Kultur aus der CultureInfo.DefaultThreadCurrentUICulture Eigenschaft ab.
Wenn keine Benutzeroberflächenkultur des Standardthreads explizit zugeordnet wurde, durch Abrufen der Kultur für den aktuellen Benutzer auf dem lokalen Computer. .NET-Implementierungen, die unter Windows ausgeführt werden, führen dazu den Aufruf der Windows-Funktion
GetUserDefaultUILanguage
durch.
Weitere Informationen zur Festlegung der aktuellen Benutzeroberflächenkultur finden Sie auf den CultureInfo Seiten und CultureInfo.CurrentUICulture Referenzseiten.
Anschließend können Sie Ressourcen für die aktuelle Benutzeroberflächenkultur oder für eine bestimmte Kultur mithilfe der System.Resources.ResourceManager Klasse abrufen. Obwohl die ResourceManager Klasse am häufigsten zum Abrufen von Ressourcen verwendet wird, enthält der System.Resources Namespace zusätzliche Typen, die Sie zum Abrufen von Ressourcen verwenden können. Dazu gehören:
Die ResourceReader Klasse, mit der Sie Ressourcen aufzählen können, die in einer Assembly eingebettet sind oder in einer eigenständigen Binärressourcendatei gespeichert sind. Es ist nützlich, wenn Sie die genauen Namen der Ressourcen nicht kennen, die zur Laufzeit verfügbar sind.
Die ResXResourceReader Klasse, mit der Sie Ressourcen aus einer XML-Datei (RESX) abrufen können.
Die ResourceSet Klasse, mit der Sie die Ressourcen einer bestimmten Kultur abrufen können, ohne Fallbackregeln zu beobachten. Die Ressourcen können in einer Assembly oder einer eigenständigen binär.resources-Datei gespeichert werden. Sie können auch eine IResourceReader Implementierung entwickeln, mit der Sie die ResourceSet Klasse verwenden können, um Ressourcen aus einer anderen Quelle abzurufen.
Die ResXResourceSet Klasse, mit der Sie alle Elemente in einer XML-Ressourcendatei im Arbeitsspeicher abrufen können.