ResourceManager.GetString Méthode

Définition

Retourne la ressource de chaîne spécifiée pour la culture spécifiée ou la culture d'interface utilisateur actuelle.

Surcharges

GetString(String)

Retourne la valeur de la ressource de chaîne spécifiée.

GetString(String, CultureInfo)

Retourne la valeur de la ressource de type chaîne localisée pour la culture spécifiée.

GetString(String)

Retourne la valeur de la ressource de chaîne spécifiée.

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

Paramètres

name
String

Nom de la ressource à récupérer.

Retours

String

Valeur de la ressource localisée pour la culture d'interface utilisateur actuelle de l'appelant, ou null si name est introuvable dans un ensemble de ressources.

Exceptions

Le paramètre name a la valeur null.

La valeur de la ressource spécifiée n'est pas une chaîne.

Aucun ensemble de ressources pouvant être utilisé n'a été trouvé et il n'existe pas de ressources pour la culture par défaut. Pour plus d'informations sur la gestion de cette exception, consultez la section « Gestion des exceptions MissingManifestResourceException et MissingSatelliteAssemblyException » dans la rubrique de la classe ResourceManager.

Les ressources de la culture par défaut résident dans un assembly satellite qui est introuvable. Pour plus d'informations sur la gestion de cette exception, consultez la section « Gestion des exceptions MissingManifestResourceException et MissingSatelliteAssemblyException » dans la rubrique de la classe ResourceManager.

Exemples

L’exemple suivant utilise la méthode pour récupérer des ressources spécifiques à la GetString culture. Il se compose de ressources compilées à partir de .txt fichiers pour les cultures anglaises (en), Français (France) (fr-FR) et russe (ru-RU). L’exemple modifie la culture actuelle et la culture actuelle de l’interface utilisateur en anglais (États-Unis), Français (France), russe (Russie) et suédois (Suède). Il appelle ensuite la méthode pour récupérer la GetString chaîne localisée, qu’elle affiche avec le jour actuel et le mois. Notez que la sortie affiche la chaîne localisée appropriée, sauf lorsque la culture actuelle de l’interface utilisateur est suédoise (Suède). Étant donné que les ressources de langue suédoise ne sont pas disponibles, l’application utilise plutôt les ressources de la culture par défaut, qui est l’anglais. L’exemple nécessite les fichiers de ressources textuels répertoriés dans le tableau suivant. Chacune possède une ressource de chaîne unique nommée DateStart.

Culture Nom de fichier Nom de la ressource Valeur de la ressource
fr-FR DateStrings.txt DateStart Aujourd’hui est
fr-FR DateStrings.fr-FR.txt DateStart Aujourd’hui, c’est le
ru-RU DateStrings.ru-RU.txt DateStart Сегодня

Vous pouvez utiliser le fichier batch suivant pour compiler l’exemple C#. Pour Visual Basic, remplacez csc par vbc, et modifiez l’extension du fichier de code source .cs en .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

Voici le code source de l’exemple (ShowDate.vb pour la version Visual Basic ou ShowDate.cs pour la version C#).

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

[assembly:NeutralResourcesLanguage("en")]

public class Example
{
   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: {0}", 
                           CultureInfo.CurrentUICulture.Name);
         string dateString = rm.GetString("DateStart");
         Console.WriteLine("{0} {1:M}.\n", dateString, DateTime.Now);                           
      }                                           
   }
}
// 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.

Remarques

Applications de bureau

Dans les applications de bureau, la ressource retournée est localisée pour la culture de l’interface utilisateur du thread actuel, telle que définie par la CultureInfo.CurrentUICulture propriété. Si la ressource n’a pas été localisée pour cette culture, le gestionnaire de ressources sonde une ressource en suivant les étapes décrites dans la section « Processus de secours des ressources » de l’article Empaquetage et déploiement des ressources . Si aucun ensemble utilisable de ressources localisées n’est trouvé, le gestionnaire de ressources revient sur les ressources de la culture par défaut. Si le gestionnaire de ressources ne peut pas charger le jeu de ressources de la culture par défaut, la méthode lève une MissingManifestResourceException exception ou, si le jeu de ressources est censé résider dans un assembly satellite, une MissingSatelliteAssemblyException exception. Si le gestionnaire de ressources peut charger un jeu de ressources approprié, mais ne trouve pas de ressource nommée name, la méthode retourne null.

La IgnoreCase propriété détermine si la comparaison entre name les noms des ressources est insensible à la casse (valeur par défaut) ou sensible à la casse.

Attention

Cette méthode peut lever plus d’exceptions que celles répertoriées. Une raison pour laquelle cela peut se produire est si une méthode que cette méthode appelle lève une exception. Par exemple, une FileLoadException exception peut être levée si une erreur a été effectuée lors du déploiement ou de l’installation d’un assembly satellite, ou une SerializationException exception peut être levée si un type défini par l’utilisateur lève une exception définie par l’utilisateur lorsque le type est désérialisé.

Windows 8.x Apps

Important

Bien que la ResourceManager classe soit prise en charge dans les applications Windows 8.x, nous ne recommandons pas son utilisation. Utilisez cette classe uniquement lorsque vous développez des projets de bibliothèque de classes portables qui peuvent être utilisés avec des applications Windows 8.x. Pour récupérer des ressources à partir d’applications Windows 8.x, utilisez la Windows. Classe ApplicationModel.Resources.ResourceLoader à la place.

Dans Windows 8.x apps, la GetString(String) méthode retourne la valeur de la name ressource de chaîne, localisée pour les paramètres actuels de culture de l’interface utilisateur de l’appelant. La liste des cultures est dérivée de la liste de langues d’interface utilisateur préférée du système d’exploitation. Si le gestionnaire de ressources ne peut pas correspondre name, la méthode retourne null.

Cohérence de thread

La GetString(String) méthode est thread safe.

Voir aussi

S’applique à

GetString(String, CultureInfo)

Retourne la valeur de la ressource de type chaîne localisée pour la culture spécifiée.

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

Paramètres

name
String

Nom de la ressource à récupérer.

culture
CultureInfo

Objet qui représente la culture pour laquelle la ressource est localisée.

Retours

String

Valeur de la ressource localisée pour la culture spécifiée, ou null si name est introuvable dans un ensemble de ressources.

Exceptions

Le paramètre name a la valeur null.

La valeur de la ressource spécifiée n'est pas une chaîne.

Aucun ensemble de ressources pouvant être utilisé n'a été trouvé et il n'existe pas de ressources pour une culture par défaut. Pour plus d'informations sur la gestion de cette exception, consultez la section « Gestion des exceptions MissingManifestResourceException et MissingSatelliteAssemblyException » dans la rubrique de la classe ResourceManager.

Les ressources de la culture par défaut résident dans un assembly satellite qui est introuvable. Pour plus d'informations sur la gestion de cette exception, consultez la section « Gestion des exceptions MissingManifestResourceException et MissingSatelliteAssemblyException » dans la rubrique de la classe ResourceManager.

Exemples

L’exemple suivant utilise la méthode pour récupérer des ressources spécifiques à la GetString(String, CultureInfo) culture. La culture par défaut de l’exemple est l’anglais (en) et inclut des assemblys satellites pour les cultures Français (France) (fr-FR) et russe (Russie) (ru-RU). L’exemple modifie la culture actuelle et la culture actuelle de l’interface utilisateur en Russe (Russie) avant d’appeler GetString(String, CultureInfo). Il appelle ensuite la méthode et la GetString DateTime.ToString(String, IFormatProvider) méthode et transmet CultureInfo des objets qui représentent les cultures Français (France) et suédois (Suède) à chaque méthode. Dans la sortie, le mois et le jour du mois ainsi que la chaîne qui les précède apparaissent dans Français, car la GetString méthode peut récupérer la ressource de langue Français. Toutefois, lorsque la culture suédoise (Suède) est utilisée, le mois et le jour du mois apparaissent en suédois, bien que la chaîne qui précède ces derniers soit en anglais. Cela est dû au fait que le gestionnaire de ressources ne trouve pas de ressources de langue suédoise localisées. Il retourne donc une ressource pour la culture anglaise par défaut à la place.

L’exemple nécessite les fichiers de ressources textuels répertoriés dans le tableau suivant. Chacune possède une ressource de chaîne unique nommée DateStart.

Culture Nom de fichier Nom de la ressource Valeur de la ressource
fr-FR DateStrings.txt DateStart Aujourd’hui est
fr-FR DateStrings.fr-FR.txt DateStart Aujourd’hui, c’est le
ru-RU DateStrings.ru-RU.txt DateStart Сегодня

Vous pouvez utiliser le fichier batch suivant pour compiler l’exemple Visual Basic. Pour compiler en C#, passez vbc à l’extension du fichier de code source à partir de .cs``.vb csc.

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

Voici le code source de l’exemple (ShowDate.vb pour la version Visual Basic ou ShowDate.cs pour la version C#).

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

[assembly:NeutralResourcesLanguage("en")]

public class Example
{
   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("{0}: {1} {2}.", 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

<Assembly:NeutralResourcesLanguage("en")>

Module Example
   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.

Remarques

Applications de bureau

Dans les applications de bureau, si c’est le casculture, la GetString(String, CultureInfo) méthode utilise la culture actuelle de l’interface utilisateur obtenue à partir de la CultureInfo.CurrentUICulture nullpropriété.

La ressource retournée est localisée pour la culture spécifiée par le culture paramètre. Si la ressource n’a pas été localisée pour culture, le gestionnaire de ressources sonde une ressource en suivant les étapes décrites dans la section « Processus de secours des ressources » de la rubrique Empaquetage et déploiement des ressources . Si aucun ensemble utilisable de ressources n’est trouvé, le gestionnaire de ressources revient sur les ressources de la culture par défaut. Si le gestionnaire de ressources ne peut pas charger le jeu de ressources de la culture par défaut, la méthode lève une MissingManifestResourceException exception ou, si le jeu de ressources est censé résider dans un assembly satellite, une MissingSatelliteAssemblyException exception. Si le gestionnaire de ressources peut charger un jeu de ressources approprié, mais ne trouve pas de ressource nommée name, la méthode retourne null.

La IgnoreCase propriété détermine si la comparaison entre name les noms des ressources est insensible à la casse (valeur par défaut) ou sensible à la casse.

Attention

Cette méthode peut lever plus d’exceptions que celles répertoriées. Une raison pour laquelle cela peut se produire est si une méthode que cette méthode appelle lève une exception. Par exemple, une FileLoadException exception peut être levée si une erreur a été effectuée lors du déploiement ou de l’installation d’un assembly satellite, ou une SerializationException exception peut être levée si un type défini par l’utilisateur lève une exception définie par l’utilisateur lorsque le type est désérialisé.

Windows 8.x Apps

Important

Bien que la ResourceManager classe soit prise en charge dans les applications Windows 8.x, nous ne recommandons pas son utilisation. Utilisez cette classe uniquement lorsque vous développez des projets de bibliothèque de classes portables qui peuvent être utilisés avec des applications Windows 8.x. Pour récupérer des ressources à partir d’applications Windows 8.x, utilisez la Windows. Classe ApplicationModel.Resources.ResourceLoader à la place.

Dans Windows 8.x apps, la GetString(String, CultureInfo) méthode retourne la valeur de la name ressource de chaîne, localisée pour la culture spécifiée par le culture paramètre. Si la ressource n’est pas localisée pour la culture culture, la recherche utilise l’intégralité de la liste de secours de langue Windows 8 et s’arrête après avoir recherché la culture par défaut. Si le gestionnaire de ressources ne peut pas correspondre name, la méthode retourne null.

Cohérence de thread

La GetString(String, CultureInfo) méthode est thread safe.

Voir aussi

S’applique à