ResourceManager.GetString Metodo

Definizione

Restituisce la risorsa di tipo stringa specificata per le impostazioni cultura specificate o per le impostazioni cultura correnti dell'interfaccia utente.

Overload

GetString(String)

Restituisce il valore della risorsa di tipo stringa specificata.

GetString(String, CultureInfo)

Restituisce il valore della risorsa di tipo stringa localizzata per le impostazioni cultura specificate.

GetString(String)

Restituisce il valore della risorsa di tipo stringa specificata.

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

Parametri

name
String

Nome della risorsa da recuperare.

Restituisce

String

Valore della risorsa localizzata per le impostazioni cultura correnti dell'interfaccia utente del chiamante oppure null se name non viene trovato in un set di risorse.

Eccezioni

Il valore del parametro name è null.

Il valore della risorsa specificata non è una stringa.

Non sono stati individuati set di risorse utilizzabili e non esistono risorse delle impostazioni cultura predefinite. Per informazioni su come gestire questa eccezione, vedere la sezione sulla gestione di MissingSatelliteAssemblyException e MissingManifestResourceException nell'argomento relativo alla classe ResourceManager.

Le risorse delle impostazioni cultura predefinite si trovano in un assembly satellite che non è stato trovato. Per informazioni su come gestire questa eccezione, vedere la sezione sulla gestione di MissingSatelliteAssemblyException e MissingManifestResourceException nell'argomento relativo alla classe ResourceManager.

Esempio

Nell'esempio seguente viene utilizzato GetString il metodo per recuperare risorse specifiche delle impostazioni cultura. È costituito da risorse compilate .txt file per le impostazioni cultura inglese (en), francese (Francia) (fr-FR) e russo (Russia) (ru-RU). L'esempio modifica le impostazioni cultura correnti e le impostazioni cultura correnti dell'interfaccia utente in inglese (Stati Uniti), francese (Francia), russo (Russia) e svedese (Svezia). Chiama quindi il GetString metodo per recuperare la stringa localizzata, visualizzata insieme al giorno e al mese correnti. Si noti che l'output visualizza la stringa localizzata appropriata tranne quando le impostazioni cultura correnti dell'interfaccia utente sono svedese (Svezia). Poiché le risorse della lingua svedese non sono disponibili, l'app usa invece le risorse delle impostazioni cultura predefinite, ovvero l'inglese. L'esempio richiede i file di risorse basati su testo elencati nella tabella seguente. Ognuno ha una singola risorsa stringa denominata DateStart .

Impostazioni cultura Nome file Nome risorsa Valore della risorsa
it-IT DateStrings.txt DateStart Oggi è
fr-FR DateStrings.fr-FR.txt DateStart Aujourd'hui, c'est le
ru-RU DateStrings.ru-RU.txt DateStart Сегодня

È possibile usare il file batch seguente per compilare l'esempio C#. Per Visual Basic, sostituire csc con vbce modificare l'estensione del file del codice sorgente da .cs a .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

Ecco il codice sorgente per l'esempio (ShowDate.vb per la versione Visual Basic o ShowDate.cs per la versione 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.

Commenti

App desktop

Nelle app desktop la risorsa restituita viene localizzata per le impostazioni cultura dell'interfaccia utente del thread corrente, come definito dalla CultureInfo.CurrentUICulture proprietà . Se la risorsa non è stata localizzata per le impostazioni cultura, il gestore delle risorse esegue il probe di una risorsa seguendo i passaggi descritti nella sezione "Processo di fallback delle risorse" dell'articolo Creazione di pacchetti e distribuzione di risorse. Se non viene trovato alcun set utilizzabile di risorse localizzate, il gestore delle risorse si ricade sulle risorse delle impostazioni cultura predefinite. Se il gestore delle risorse non è in grado di caricare il set di risorse delle impostazioni cultura predefinite, il metodo genera un'eccezione o, se si prevede che il set di risorse si trovi in un MissingManifestResourceException assembly satellite, un'eccezione. MissingSatelliteAssemblyException Se il gestore delle risorse può caricare un set di risorse appropriato ma non riesce a trovare una risorsa denominata name , il metodo restituisce null .

La proprietà determina se il confronto di con i nomi delle risorse non fa distinzione tra maiuscole e minuscole (impostazione predefinita) o fa distinzione IgnoreCase name tra maiuscole e minuscole.

Attenzione

Questo metodo può generare più eccezioni di quelle elencate. Un motivo può verificarsi se un metodo chiamato da questo metodo genera un'eccezione. Ad esempio, potrebbe essere generata un'eccezione se è stato generato un errore durante la distribuzione o l'installazione di un assembly satellite oppure se un tipo definito dall'utente genera un'eccezione definita dall'utente quando il tipo viene FileLoadException SerializationException deserializzato.

Windows 8.x App dello Store

Importante

Anche se ResourceManager la classe è supportata nelle app Windows 8.x Store, non è consigliabile usarla. Usare questa classe solo quando si sviluppano progetti di libreria di classi portabili che possono essere usati con Windows 8.x Store. Per recuperare le risorse dalle app Windows 8.x Store, usare il Windows. Classe ApplicationModel.Resources.ResourceLoader.

Nelle app Windows 8.x Store, il metodo restituisce il valore della risorsa stringa, localizzato per le impostazioni cultura correnti GetString(String) name dell'interfaccia utente del chiamante. L'elenco delle impostazioni cultura deriva dall'elenco delle lingue preferite dell'interfaccia utente del sistema operativo. Se il gestore delle risorse non può corrispondere name a , il metodo restituisce null .

Thread safety

Il GetString(String) metodo è thread-safe.

Vedi anche

Si applica a

GetString(String, CultureInfo)

Restituisce il valore della risorsa di tipo stringa localizzata per le impostazioni cultura specificate.

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

Parametri

name
String

Nome della risorsa da recuperare.

culture
CultureInfo

Oggetto che rappresenta le impostazioni cultura per le quali viene localizzata la risorsa.

Restituisce

String

Valore della risorsa localizzata per le impostazioni cultura specificate oppure null se name non viene trovato in un set di risorse.

Eccezioni

Il valore del parametro name è null.

Il valore della risorsa specificata non è una stringa.

Non sono stati individuati set di risorse utilizzabili e non esistono risorse delle impostazioni cultura predefinite. Per informazioni su come gestire questa eccezione, vedere la sezione sulla gestione di MissingSatelliteAssemblyException e MissingManifestResourceException nell'argomento relativo alla classe ResourceManager.

Le risorse delle impostazioni cultura predefinite si trovano in un assembly satellite che non è stato trovato. Per informazioni su come gestire questa eccezione, vedere la sezione sulla gestione di MissingSatelliteAssemblyException e MissingManifestResourceException nell'argomento relativo alla classe ResourceManager.

Esempio

Nell'esempio seguente viene utilizzato GetString(String, CultureInfo) il metodo per recuperare risorse specifiche delle impostazioni cultura. Le impostazioni cultura predefinite dell'esempio sono inglese (en) e includono assembly satellite per le impostazioni cultura francese (Francia) (fr-FR) e russo (Russia) (ru-RU). L'esempio modifica le impostazioni cultura correnti e le impostazioni cultura correnti dell'interfaccia utente in russo (Russia) prima di chiamare GetString(String, CultureInfo) . Chiama quindi il metodo e il metodo e passa gli oggetti che rappresentano le impostazioni cultura francese GetString DateTime.ToString(String, IFormatProvider) CultureInfo (Francia) e svedese (Svezia) a ogni metodo. Nell'output il mese e il giorno del mese e la stringa che li precede vengono visualizzati in francese, perché il metodo è in grado di recuperare la risorsa della GetString lingua francese. Tuttavia, quando vengono usate le impostazioni cultura svedese (Svezia), il mese e il giorno del mese vengono visualizzati in svedese, anche se la stringa che le precede è in inglese. Ciò è dovuto al fatto che il gestore delle risorse non riesce a trovare risorse localizzate in lingua svedese, quindi restituisce una risorsa per le impostazioni cultura predefinite dell'inglese.

L'esempio richiede i file di risorse basati su testo elencati nella tabella seguente. Ognuno ha una singola risorsa stringa denominata DateStart .

Impostazioni cultura Nome file Nome risorsa Valore della risorsa
it-IT DateStrings.txt DateStart Oggi è
fr-FR DateStrings.fr-FR.txt DateStart Aujourd'hui, c'est le
ru-RU DateStrings.ru-RU.txt DateStart Сегодня

È possibile usare il file batch seguente per compilare il Visual Basic esempio. Per eseguire la compilazione in C#, vbc modificare in e modificare csc l'estensione del file di codice sorgente da .vb a .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

Ecco il codice sorgente per l'esempio (ShowDate.vb per la versione Visual Basic o ShowDate.cs per la versione 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.

Commenti

App desktop

Nelle app desktop, se è , il metodo usa le impostazioni cultura culture correnti dell'interfaccia null utente GetString(String, CultureInfo) ottenute dalla proprietà CultureInfo.CurrentUICulture .

La risorsa restituita viene localizzata per le impostazioni cultura specificate dal culture parametro . Se la risorsa non è stata localizzata per , il gestore delle risorse esegue il probe per una risorsa seguendo i passaggi descritti nella sezione "Processo di fallback delle risorse" dell'argomento Creazione di pacchetti e culture distribuzione di risorse. Se non viene trovato alcun set utilizzabile di risorse, il gestore delle risorse si ricade sulle risorse delle impostazioni cultura predefinite. Se il gestore delle risorse non è in grado di caricare il set di risorse delle impostazioni cultura predefinite, il metodo genera un'eccezione o, se si prevede che il set di risorse si trovi in un MissingManifestResourceException assembly satellite, un'eccezione. MissingSatelliteAssemblyException Se il gestore delle risorse può caricare un set di risorse appropriato ma non riesce a trovare una risorsa denominata name , il metodo restituisce null .

La proprietà determina se il confronto di con i nomi delle risorse non fa distinzione tra maiuscole e minuscole (impostazione predefinita) o fa distinzione IgnoreCase name tra maiuscole e minuscole.

Attenzione

Questo metodo può generare più eccezioni di quelle elencate. Un motivo può verificarsi se un metodo chiamato da questo metodo genera un'eccezione. Ad esempio, potrebbe essere generata un'eccezione se è stato generato un errore durante la distribuzione o l'installazione di un assembly satellite oppure se un tipo definito dall'utente genera un'eccezione definita dall'utente quando il tipo viene FileLoadException SerializationException deserializzato.

Windows 8.x App dello Store

Importante

Anche se ResourceManager la classe è supportata nelle app Windows 8.x Store, non è consigliabile usarla. Usare questa classe solo quando si sviluppano progetti di libreria di classi portabili che possono essere usati con Windows 8.x Store. Per recuperare le risorse dalle app Windows 8.x Store, usare il Windows. Classe ApplicationModel.Resources.ResourceLoader.

Nelle app Windows 8.x Store, il metodo restituisce il valore della risorsa GetString(String, CultureInfo) stringa, localizzato per le name impostazioni cultura specificate dal parametro culture . Se la risorsa non è localizzata per le impostazioni cultura, la ricerca usa l'intero elenco di fallback Windows 8 lingua e si interrompe dopo la ricerca culture nelle impostazioni cultura predefinite. Se il gestore delle risorse non può corrispondere name a , il metodo restituisce null .

Thread safety

Il GetString(String, CultureInfo) metodo è thread-safe.

Vedi anche

Si applica a