ResourceManager.GetString Methode

Definition

Gibt die angegebene Zeichenfolgenressource für die angegebene Kultur oder die aktuelle Benutzeroberflächenkultur zurück.

Überlädt

Name Beschreibung
GetString(String)

Gibt den Wert der angegebenen Zeichenfolgenressource zurück.

GetString(String, CultureInfo)

Gibt den Wert der für die angegebene Kultur lokalisierten Zeichenfolgenressource zurück.

GetString(String)

Quelle:
ResourceManager.cs
Quelle:
ResourceManager.cs
Quelle:
ResourceManager.cs
Quelle:
ResourceManager.cs
Quelle:
ResourceManager.cs

Gibt den Wert der angegebenen Zeichenfolgenressource zurück.

public:
 System::String ^ GetString(System::String ^ name);
public:
 virtual System::String ^ GetString(System::String ^ name);
public string GetString(string name);
public virtual string? GetString(string name);
public virtual string GetString(string name);
member this.GetString : string -> string
abstract member GetString : string -> string
override this.GetString : string -> string
Public Function GetString (name As String) As String
Public Overridable Function GetString (name As String) As String

Parameter

name
String

Der Name der abzurufenden Ressource.

Gibt zurück

Der Wert der Ressource, die für die aktuelle Benutzeroberflächenkultur des Aufrufers lokalisiert wurde, oder null wenn name sie nicht in einem Ressourcensatz gefunden werden kann.

Ausnahmen

Der name Parameter ist null.

Der Wert der angegebenen Ressource ist keine Zeichenfolge.

Es wurden keine verwendbaren Ressourcen gefunden, und es gibt keine Ressourcen für die Standardkultur. Informationen zum Behandeln dieser Ausnahme finden Sie im Abschnitt "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" im Thema zur ResourceManager Klasse.

Die Ressourcen der Standardkultur befinden sich in einer Satellitenassembly, die nicht gefunden werden konnte. Informationen zum Behandeln dieser Ausnahme finden Sie im Abschnitt "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" im Thema zur ResourceManager Klasse.

Hinweise

Die Eigenschaft IgnoreCase bestimmt, ob beim Vergleich von name mit den Namen der Ressourcen zwischen Groß- und Kleinschreibung unterschieden wird (Standardeinstellung) oder nicht.

Note

Die GetString Methoden können mehr Ausnahmen auslösen, als aufgelistet sind. Ein Grund hierfür kann sein, wenn eine Methode, die von dieser Methode aufgerufen wird, eine Ausnahme auslöst. Eine FileLoadException-Ausnahme könnte beispielsweise ausgelöst werden, wenn ein Fehler bei der Bereitstellung oder Installation einer Satellitenassembly aufgetreten ist, oder eine SerializationException-Ausnahme könnte ausgelöst werden, wenn ein benutzerdefinierter Typ eine benutzerdefinierte Ausnahme auslöst, wenn der Typ deserialisiert wird.

GetString(String)-Methode

Desktopanwendungen

Bei Desktop-Apps wird die zurückgegebene Ressource auf die Benutzeroberflächenkultur des aktuellen Threads lokalisiert, wie durch die CultureInfo.CurrentUICulture-Eigenschaft definiert. Wenn die Ressource für diese Kultur nicht lokalisiert wurde, sucht der Ressourcen-Manager nach einer Ressource, indem er die im Abschnitt „Ressourcenfallbackprozess“ des Artikels „Packen und Bereitstellen von Ressourcen“ beschriebenen Schritte ausführt. Wenn keine verwendbare Gruppe lokalisierter Ressourcen gefunden wird, greift der Ressourcen-Manager auf die Ressourcen der Standardkultur zurück. Wenn der Ressourcenmanager den Ressourcensatz der Standardkultur nicht laden kann, löst die Methode eine MissingManifestResourceException-Ausnahme aus oder, wenn der Ressourcensatz in einer Satellitenassembly erwartet wird, eine MissingSatelliteAssemblyException-Ausnahme. Wenn der Ressourcen-Manager einen geeigneten Ressourcensatz laden kann, aber keine Ressource mit dem Namen namefinden kann, gibt die Methode zurück null.

Example

Im folgenden Beispiel wird die GetString Methode zum Abrufen kulturspezifischer Ressourcen verwendet. Es besteht aus Ressourcen, die aus .txt Dateien für die Kulturen Englisch (en), Französisch (Frankreich) (fr-FR) und Russisch (Russland) (ru-RU) kompiliert wurden. Das Beispiel ändert die aktuelle Kultur und die aktuelle Kultur der Benutzeroberfläche in Englisch (Vereinigte Staaten), Französisch (Frankreich), Russisch (Russland) und Schwedisch (Schweden). Anschließend wird die GetString Methode aufgerufen, um die lokalisierte Zeichenfolge abzurufen, die zusammen mit dem aktuellen Tag und dem aktuellen Monat angezeigt wird. Beachten Sie, dass die Ausgabe die entsprechende lokalisierte Zeichenfolge anzeigt, außer wenn die aktuelle UI-Kultur schwedisch (Schweden) ist. Da schwedische Sprachressourcen nicht verfügbar sind, verwendet die App stattdessen die Ressourcen der Standardkultur, die Englisch ist. Für das Beispiel sind die textbasierten Ressourcendateien erforderlich, die in der folgenden Tabelle aufgeführt sind. Jede verfügt über eine einzelne Zeichenfolgenressource mit dem Namen DateStart.

Kultur Dateiname Ressourcenname Ressourcenwert
en-US DateStrings.txt DateStart Heute ist
fr-FR DateStrings.fr-FR.txt DateStart Heute ist der
ru-RU DateStrings.ru-RU.txt DateStart Сегодня

Sie können die folgende Batchdatei verwenden, um das C#-Beispiel zu kompilieren. Ändern Sie für Visual Basic csc zu vbc, und ändern Sie die Erweiterung der Quellcodedatei von .cs zu .vb.

resgen DateStrings.txt
csc showdate.cs /resource:DateStrings.resources

md fr-FR
resgen DateStrings.fr-FR.txt
al /out:fr-FR\Showdate.resources.dll /culture:fr-FR /embed:DateStrings.fr-FR.resources

md ru-RU
resgen DateStrings.ru-RU.txt
al /out:ru-RU\Showdate.resources.dll /culture:ru-RU /embed:DateStrings.ru-RU.resources

Hier sehen Sie den Quellcode für das Beispiel (ShowDate.vb für die Visual Basic-Version oder ShowDate.cs für die C#-Version).

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

public class ShowTimeExample
{
   public static void Main()
   {
      string[] cultureNames = [ "en-US", "fr-FR", "ru-RU", "sv-SE" ];
      ResourceManager rm = new ResourceManager("DateStrings",
                                               typeof(Example).Assembly);

      foreach (var cultureName in cultureNames) {
         CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
         Thread.CurrentThread.CurrentCulture = culture;
         Thread.CurrentThread.CurrentUICulture = culture;

         Console.WriteLine($"Current UI Culture: {CultureInfo.CurrentUICulture.Name}");
         string dateString = rm.GetString("DateStart");
         Console.WriteLine($"{dateString} {DateTime.Now:M}.\n");
      }
   }
}

// The example displays output similar to the following:
//       Current UI Culture: en-US
//       Today is February 03.
//
//       Current UI Culture: fr-FR
//       Aujourd'hui, c'est le 3 février
//
//       Current UI Culture: ru-RU
//       Сегодня февраля 03.
//
//       Current UI Culture: sv-SE
//       Today is den 3 februari.
Imports System.Globalization
Imports System.Resources
Imports System.Threading

<Assembly:NeutralResourcesLanguage("en")>

Module Example
   Public Sub Main()
      Dim cultureNames() As String = { "en-US", "fr-FR", "ru-RU", "sv-SE" }
      Dim rm As New ResourceManager("DateStrings",
                                    GetType(Example).Assembly)
      
      For Each cultureName In cultureNames
         Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
         Thread.CurrentThread.CurrentCulture = culture 
         Thread.CurrentThread.CurrentUICulture = culture

         Console.WriteLine("Current UI Culture: {0}", 
                           CultureInfo.CurrentUICulture.Name)
         Dim dateString As String = rm.GetString("DateStart")
         Console.WriteLine("{0} {1:M}.", dateString, Date.Now)                           
         Console.WriteLine()
      Next                                           
   End Sub
End Module
' The example displays output similar to the following:
'       Current UI Culture: en-US
'       Today is February 03.
'       
'       Current UI Culture: fr-FR
'       Aujourd'hui, c'est le 3 février
'       
'       Current UI Culture: ru-RU
'       Сегодня февраля 03.
'       
'       Current UI Culture: sv-SE
'       Today is den 3 februari.

GetString(String, CultureInfo)-Methode

Desktopanwendungen

In Desktop-Apps, wenn culturenull ist, verwendet die GetString(String, CultureInfo)-Methode die aktuelle UI-Kultur, die von der CultureInfo.CurrentUICulture-Eigenschaft abgerufen wird.

Die zurückgegebene Ressource wird für die vom culture Parameter angegebene Kultur lokalisiert. Wenn die Ressource nicht für culture lokalisiert wurde, sucht der Ressourcen-Manager nach einer Ressource, indem er die im Abschnitt "Ressourcenfallbackprozess" des Themas "Packen und Bereitstellen von Ressourcen" beschriebenen Schritte ausführt. Wenn keine verwendbare Gruppe von Ressourcen gefunden wird, greift der Ressourcen-Manager auf die Ressourcen der Standardkultur zurück. Wenn der Ressourcenmanager den Ressourcensatz der Standardkultur nicht laden kann, löst die Methode eine MissingManifestResourceException-Ausnahme aus oder, wenn der Ressourcensatz in einer Satellitenassembly erwartet wird, eine MissingSatelliteAssemblyException-Ausnahme. Wenn der Ressourcen-Manager einen geeigneten Ressourcensatz laden kann, aber keine Ressource mit dem Namen namefinden kann, gibt die Methode zurück null.

Example

Im folgenden Beispiel wird die GetString(String, CultureInfo) Methode zum Abrufen kulturspezifischer Ressourcen verwendet. Die Standardkultur des Beispiels ist Englisch (en), und es enthält Satellitenassemblies für die Kulturen Französisch (Frankreich) (fr-FR) und Russisch (Russland) (ru-RU). Das Beispiel ändert die aktuelle Kultur und die aktuelle UI-Kultur auf Russisch (Russland), bevor es GetString(String, CultureInfo)aufruft. Anschließend ruft sie die GetString Methode und die DateTime.ToString(String, IFormatProvider) Methode auf und übergibt CultureInfo Objekte, die die Kulturen Französisch (Frankreich) und Schwedisch (Schweden) an jede Methode darstellen. In der Ausgabe werden der Monat und der Tag des Monats sowie die Zeichenfolge, die ihnen vorausgeht, in Französisch angezeigt, da die GetString Methode die Französisch-Sprachressource abrufen kann. Wenn jedoch die schwedische Kultur (Schweden) verwendet wird, wird der Monat und der Tag des Monats in Schwedisch angezeigt, obwohl die Zeichenfolge, die ihnen vorausgeht, in Englisch ist. Dies liegt daran, dass der Ressourcenmanager lokalisierte schwedische Sprachressourcen nicht finden kann. Daher wird stattdessen eine Ressource für die englische Standardkultur zurückgegeben.

Für das Beispiel sind die textbasierten Ressourcendateien erforderlich, die in der folgenden Tabelle aufgeführt sind. Jede verfügt über eine einzelne Zeichenfolgenressource mit dem Namen DateStart.

Kultur Dateiname Ressourcenname Ressourcenwert
en-US DateStrings.txt DateStart Heute ist
fr-FR DateStrings.fr-FR.txt DateStart Heute ist der
ru-RU DateStrings.ru-RU.txt DateStart Сегодня

Sie können die folgende Batchdatei verwenden, um das Visual Basic-Beispiel zu kompilieren. Wenn Sie in C# kompilieren möchten, ändern Sie vbc zu csc und ändern Sie die Erweiterung der Quellcodedatei von .vb zu .cs.

resgen DateStrings.txt
vbc showdate.vb /resource:DateStrings.resources

md fr-FR
resgen DateStrings.fr-FR.txt
al /out:fr-FR\Showdate.resources.dll /culture:fr-FR /embed:DateStrings.fr-FR.resources

md ru-RU
resgen DateStrings.ru-RU.txt
al /out:ru-RU\Showdate.resources.dll /culture:ru-RU /embed:DateStrings.ru-RU.resources

Hier sehen Sie den Quellcode für das Beispiel (ShowDate.vb für die Visual Basic-Version oder ShowDate.cs für die C#-Version).

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

public class Example2
{
    public static void Main()
    {
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU");
        Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU");

        string[] cultureNames = [ "fr-FR", "sv-SE" ];
        ResourceManager rm = new ResourceManager("DateStrings",
                                                 typeof(Example).Assembly);

        foreach (var cultureName in cultureNames)
        {
            CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
            string dateString = rm.GetString("DateStart", culture);
            Console.WriteLine($"{culture.DisplayName}: {dateString} {DateTime.Now.ToString("M", culture)}.");
            Console.WriteLine();
        }
    }
}

// The example displays output similar to the following:
//       French (France): Aujourd'hui, c'est le 7 février.
//
//       Swedish (Sweden): Today is den 7 februari.
Imports System.Globalization
Imports System.Resources
Imports System.Threading

Module Example2
    Public Sub Main()
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU")
        Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU")

        Dim cultureNames() As String = {"fr-FR", "sv-SE"}
        Dim rm As New ResourceManager("DateStrings",
                                    GetType(Example).Assembly)

        For Each cultureName In cultureNames
            Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
            Dim dateString As String = rm.GetString("DateStart", culture)
            Console.WriteLine("{0}: {1} {2}.", culture.DisplayName, dateString,
                                            Date.Now.ToString("M", culture))
            Console.WriteLine()
        Next
    End Sub
End Module
' The example displays output similar to the following:
'       French (France): Aujourd'hui, c'est le 7 février.
'       
'       Swedish (Sweden): Today is den 7 februari.

Threadsicherheit

Die GetString(String) Methode ist threadsicher.

Weitere Informationen

Gilt für:

GetString(String, CultureInfo)

Quelle:
ResourceManager.cs
Quelle:
ResourceManager.cs
Quelle:
ResourceManager.cs
Quelle:
ResourceManager.cs
Quelle:
ResourceManager.cs

Gibt den Wert der für die angegebene Kultur lokalisierten Zeichenfolgenressource zurück.

public:
 virtual System::String ^ GetString(System::String ^ name, System::Globalization::CultureInfo ^ culture);
public virtual string GetString(string name, System.Globalization.CultureInfo culture);
public virtual string? GetString(string name, System.Globalization.CultureInfo? culture);
abstract member GetString : string * System.Globalization.CultureInfo -> string
override this.GetString : string * System.Globalization.CultureInfo -> string
Public Overridable Function GetString (name As String, culture As CultureInfo) As String

Parameter

name
String

Der Name der abzurufenden Ressource.

culture
CultureInfo

Ein Objekt, das die Kultur darstellt, für die die Ressource lokalisiert wird.

Gibt zurück

Der Wert der für die angegebene Kultur lokalisierten Ressource, oder null wenn name sie in einem Ressourcensatz nicht gefunden werden kann.

Ausnahmen

Der name Parameter ist null.

Der Wert der angegebenen Ressource ist keine Zeichenfolge.

Es wurden keine verwendbaren Ressourcen gefunden, und es gibt keine Ressourcen für eine Standardkultur. Informationen zum Behandeln dieser Ausnahme finden Sie im Abschnitt "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" im Thema zur ResourceManager Klasse.

Die Ressourcen der Standardkultur befinden sich in einer Satellitenassembly, die nicht gefunden werden konnte. Informationen zum Behandeln dieser Ausnahme finden Sie im Abschnitt "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" im Thema zur ResourceManager Klasse.

Hinweise

Die Eigenschaft IgnoreCase bestimmt, ob beim Vergleich von name mit den Namen der Ressourcen zwischen Groß- und Kleinschreibung unterschieden wird (Standardeinstellung) oder nicht.

Note

Die GetString Methoden können mehr Ausnahmen auslösen, als aufgelistet sind. Ein Grund hierfür kann sein, wenn eine Methode, die von dieser Methode aufgerufen wird, eine Ausnahme auslöst. Eine FileLoadException-Ausnahme könnte beispielsweise ausgelöst werden, wenn ein Fehler bei der Bereitstellung oder Installation einer Satellitenassembly aufgetreten ist, oder eine SerializationException-Ausnahme könnte ausgelöst werden, wenn ein benutzerdefinierter Typ eine benutzerdefinierte Ausnahme auslöst, wenn der Typ deserialisiert wird.

GetString(String)-Methode

Desktopanwendungen

Bei Desktop-Apps wird die zurückgegebene Ressource auf die Benutzeroberflächenkultur des aktuellen Threads lokalisiert, wie durch die CultureInfo.CurrentUICulture-Eigenschaft definiert. Wenn die Ressource für diese Kultur nicht lokalisiert wurde, sucht der Ressourcen-Manager nach einer Ressource, indem er die im Abschnitt „Ressourcenfallbackprozess“ des Artikels „Packen und Bereitstellen von Ressourcen“ beschriebenen Schritte ausführt. Wenn keine verwendbare Gruppe lokalisierter Ressourcen gefunden wird, greift der Ressourcen-Manager auf die Ressourcen der Standardkultur zurück. Wenn der Ressourcenmanager den Ressourcensatz der Standardkultur nicht laden kann, löst die Methode eine MissingManifestResourceException-Ausnahme aus oder, wenn der Ressourcensatz in einer Satellitenassembly erwartet wird, eine MissingSatelliteAssemblyException-Ausnahme. Wenn der Ressourcen-Manager einen geeigneten Ressourcensatz laden kann, aber keine Ressource mit dem Namen namefinden kann, gibt die Methode zurück null.

Example

Im folgenden Beispiel wird die GetString Methode zum Abrufen kulturspezifischer Ressourcen verwendet. Es besteht aus Ressourcen, die aus .txt Dateien für die Kulturen Englisch (en), Französisch (Frankreich) (fr-FR) und Russisch (Russland) (ru-RU) kompiliert wurden. Das Beispiel ändert die aktuelle Kultur und die aktuelle Kultur der Benutzeroberfläche in Englisch (Vereinigte Staaten), Französisch (Frankreich), Russisch (Russland) und Schwedisch (Schweden). Anschließend wird die GetString Methode aufgerufen, um die lokalisierte Zeichenfolge abzurufen, die zusammen mit dem aktuellen Tag und dem aktuellen Monat angezeigt wird. Beachten Sie, dass die Ausgabe die entsprechende lokalisierte Zeichenfolge anzeigt, außer wenn die aktuelle UI-Kultur schwedisch (Schweden) ist. Da schwedische Sprachressourcen nicht verfügbar sind, verwendet die App stattdessen die Ressourcen der Standardkultur, die Englisch ist. Für das Beispiel sind die textbasierten Ressourcendateien erforderlich, die in der folgenden Tabelle aufgeführt sind. Jede verfügt über eine einzelne Zeichenfolgenressource mit dem Namen DateStart.

Kultur Dateiname Ressourcenname Ressourcenwert
en-US DateStrings.txt DateStart Heute ist
fr-FR DateStrings.fr-FR.txt DateStart Heute ist der
ru-RU DateStrings.ru-RU.txt DateStart Сегодня

Sie können die folgende Batchdatei verwenden, um das C#-Beispiel zu kompilieren. Ändern Sie für Visual Basic csc zu vbc, und ändern Sie die Erweiterung der Quellcodedatei von .cs zu .vb.

resgen DateStrings.txt
csc showdate.cs /resource:DateStrings.resources

md fr-FR
resgen DateStrings.fr-FR.txt
al /out:fr-FR\Showdate.resources.dll /culture:fr-FR /embed:DateStrings.fr-FR.resources

md ru-RU
resgen DateStrings.ru-RU.txt
al /out:ru-RU\Showdate.resources.dll /culture:ru-RU /embed:DateStrings.ru-RU.resources

Hier sehen Sie den Quellcode für das Beispiel (ShowDate.vb für die Visual Basic-Version oder ShowDate.cs für die C#-Version).

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

public class ShowTimeExample
{
   public static void Main()
   {
      string[] cultureNames = [ "en-US", "fr-FR", "ru-RU", "sv-SE" ];
      ResourceManager rm = new ResourceManager("DateStrings",
                                               typeof(Example).Assembly);

      foreach (var cultureName in cultureNames) {
         CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
         Thread.CurrentThread.CurrentCulture = culture;
         Thread.CurrentThread.CurrentUICulture = culture;

         Console.WriteLine($"Current UI Culture: {CultureInfo.CurrentUICulture.Name}");
         string dateString = rm.GetString("DateStart");
         Console.WriteLine($"{dateString} {DateTime.Now:M}.\n");
      }
   }
}

// The example displays output similar to the following:
//       Current UI Culture: en-US
//       Today is February 03.
//
//       Current UI Culture: fr-FR
//       Aujourd'hui, c'est le 3 février
//
//       Current UI Culture: ru-RU
//       Сегодня февраля 03.
//
//       Current UI Culture: sv-SE
//       Today is den 3 februari.
Imports System.Globalization
Imports System.Resources
Imports System.Threading

<Assembly:NeutralResourcesLanguage("en")>

Module Example
   Public Sub Main()
      Dim cultureNames() As String = { "en-US", "fr-FR", "ru-RU", "sv-SE" }
      Dim rm As New ResourceManager("DateStrings",
                                    GetType(Example).Assembly)
      
      For Each cultureName In cultureNames
         Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
         Thread.CurrentThread.CurrentCulture = culture 
         Thread.CurrentThread.CurrentUICulture = culture

         Console.WriteLine("Current UI Culture: {0}", 
                           CultureInfo.CurrentUICulture.Name)
         Dim dateString As String = rm.GetString("DateStart")
         Console.WriteLine("{0} {1:M}.", dateString, Date.Now)                           
         Console.WriteLine()
      Next                                           
   End Sub
End Module
' The example displays output similar to the following:
'       Current UI Culture: en-US
'       Today is February 03.
'       
'       Current UI Culture: fr-FR
'       Aujourd'hui, c'est le 3 février
'       
'       Current UI Culture: ru-RU
'       Сегодня февраля 03.
'       
'       Current UI Culture: sv-SE
'       Today is den 3 februari.

GetString(String, CultureInfo)-Methode

Desktopanwendungen

In Desktop-Apps, wenn culturenull ist, verwendet die GetString(String, CultureInfo)-Methode die aktuelle UI-Kultur, die von der CultureInfo.CurrentUICulture-Eigenschaft abgerufen wird.

Die zurückgegebene Ressource wird für die vom culture Parameter angegebene Kultur lokalisiert. Wenn die Ressource nicht für culture lokalisiert wurde, sucht der Ressourcen-Manager nach einer Ressource, indem er die im Abschnitt "Ressourcenfallbackprozess" des Themas "Packen und Bereitstellen von Ressourcen" beschriebenen Schritte ausführt. Wenn keine verwendbare Gruppe von Ressourcen gefunden wird, greift der Ressourcen-Manager auf die Ressourcen der Standardkultur zurück. Wenn der Ressourcenmanager den Ressourcensatz der Standardkultur nicht laden kann, löst die Methode eine MissingManifestResourceException-Ausnahme aus oder, wenn der Ressourcensatz in einer Satellitenassembly erwartet wird, eine MissingSatelliteAssemblyException-Ausnahme. Wenn der Ressourcen-Manager einen geeigneten Ressourcensatz laden kann, aber keine Ressource mit dem Namen namefinden kann, gibt die Methode zurück null.

Example

Im folgenden Beispiel wird die GetString(String, CultureInfo) Methode zum Abrufen kulturspezifischer Ressourcen verwendet. Die Standardkultur des Beispiels ist Englisch (en), und es enthält Satellitenassemblies für die Kulturen Französisch (Frankreich) (fr-FR) und Russisch (Russland) (ru-RU). Das Beispiel ändert die aktuelle Kultur und die aktuelle UI-Kultur auf Russisch (Russland), bevor es GetString(String, CultureInfo)aufruft. Anschließend ruft sie die GetString Methode und die DateTime.ToString(String, IFormatProvider) Methode auf und übergibt CultureInfo Objekte, die die Kulturen Französisch (Frankreich) und Schwedisch (Schweden) an jede Methode darstellen. In der Ausgabe werden der Monat und der Tag des Monats sowie die Zeichenfolge, die ihnen vorausgeht, in Französisch angezeigt, da die GetString Methode die Französisch-Sprachressource abrufen kann. Wenn jedoch die schwedische Kultur (Schweden) verwendet wird, wird der Monat und der Tag des Monats in Schwedisch angezeigt, obwohl die Zeichenfolge, die ihnen vorausgeht, in Englisch ist. Dies liegt daran, dass der Ressourcenmanager lokalisierte schwedische Sprachressourcen nicht finden kann. Daher wird stattdessen eine Ressource für die englische Standardkultur zurückgegeben.

Für das Beispiel sind die textbasierten Ressourcendateien erforderlich, die in der folgenden Tabelle aufgeführt sind. Jede verfügt über eine einzelne Zeichenfolgenressource mit dem Namen DateStart.

Kultur Dateiname Ressourcenname Ressourcenwert
en-US DateStrings.txt DateStart Heute ist
fr-FR DateStrings.fr-FR.txt DateStart Heute ist der
ru-RU DateStrings.ru-RU.txt DateStart Сегодня

Sie können die folgende Batchdatei verwenden, um das Visual Basic-Beispiel zu kompilieren. Wenn Sie in C# kompilieren möchten, ändern Sie vbc zu csc und ändern Sie die Erweiterung der Quellcodedatei von .vb zu .cs.

resgen DateStrings.txt
vbc showdate.vb /resource:DateStrings.resources

md fr-FR
resgen DateStrings.fr-FR.txt
al /out:fr-FR\Showdate.resources.dll /culture:fr-FR /embed:DateStrings.fr-FR.resources

md ru-RU
resgen DateStrings.ru-RU.txt
al /out:ru-RU\Showdate.resources.dll /culture:ru-RU /embed:DateStrings.ru-RU.resources

Hier sehen Sie den Quellcode für das Beispiel (ShowDate.vb für die Visual Basic-Version oder ShowDate.cs für die C#-Version).

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

public class Example2
{
    public static void Main()
    {
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU");
        Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU");

        string[] cultureNames = [ "fr-FR", "sv-SE" ];
        ResourceManager rm = new ResourceManager("DateStrings",
                                                 typeof(Example).Assembly);

        foreach (var cultureName in cultureNames)
        {
            CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
            string dateString = rm.GetString("DateStart", culture);
            Console.WriteLine($"{culture.DisplayName}: {dateString} {DateTime.Now.ToString("M", culture)}.");
            Console.WriteLine();
        }
    }
}

// The example displays output similar to the following:
//       French (France): Aujourd'hui, c'est le 7 février.
//
//       Swedish (Sweden): Today is den 7 februari.
Imports System.Globalization
Imports System.Resources
Imports System.Threading

Module Example2
    Public Sub Main()
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU")
        Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU")

        Dim cultureNames() As String = {"fr-FR", "sv-SE"}
        Dim rm As New ResourceManager("DateStrings",
                                    GetType(Example).Assembly)

        For Each cultureName In cultureNames
            Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
            Dim dateString As String = rm.GetString("DateStart", culture)
            Console.WriteLine("{0}: {1} {2}.", culture.DisplayName, dateString,
                                            Date.Now.ToString("M", culture))
            Console.WriteLine()
        Next
    End Sub
End Module
' The example displays output similar to the following:
'       French (France): Aujourd'hui, c'est le 7 février.
'       
'       Swedish (Sweden): Today is den 7 februari.

Threadsicherheit

Die GetString(String, CultureInfo) Methode ist threadsicher.

Weitere Informationen

Gilt für: