ResourceManager.GetString Метод

Определение

Возвращает указанный ресурс строки для заданного языка и региональных параметров или текущего языка и региональных параметров пользовательского интерфейса.Returns the specified string resource for the specified culture or current UI culture.

Перегрузки

GetString(String)

Возвращает значение указанного строкового ресурса.Returns the value of the specified string resource.

GetString(String, CultureInfo)

Возвращает значение строкового ресурса, локализованного для указанного языка и региональных параметров.Returns the value of the string resource localized for the specified culture.

GetString(String)

Возвращает значение указанного строкового ресурса.Returns the value of the specified string resource.

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

Параметры

name
String

Имя извлекаемого ресурса.The name of the resource to retrieve.

Возвращаемое значение

String

Значение ресурса, локализованное для языка и региональных параметров текущего пользовательского интерфейса вызывающего объекта, или значение null, если не удается найти name в наборе ресурсов.The value of the resource localized for the caller's current UI culture, or null if name cannot be found in a resource set.

Исключения

Параметр name имеет значение null.The name parameter is null.

Значение указанного ресурса не является строковым.The value of the specified resource is not a string.

Не найден подходящий набор ресурсов и отсутствуют ресурсы языка и региональных параметров по умолчанию.No usable set of resources has been found, and there are no resources for the default culture. Сведения об обработке этого исключения см. в подразделе "Обработка исключений MissingManifestResourceException и MissingSatelliteAssemblyException" раздела, посвященного классу ResourceManager.For information about how to handle this exception, see the "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" section in the ResourceManager class topic.

Ресурсы языка и региональных параметров по умолчанию находятся во вспомогательной сборке, которую не удалось найти.The default culture's resources reside in a satellite assembly that could not be found. Сведения об обработке этого исключения см. в подразделе "Обработка исключений MissingManifestResourceException и MissingSatelliteAssemblyException" раздела, посвященного классу ResourceManager.For information about how to handle this exception, see the "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" section in the ResourceManager class topic.

Примеры

В следующем примере метод используется GetString для получения ресурсов, зависящих от языка и региональных параметров.The following example uses the GetString method to retrieve culture-specific resources. Он состоит из ресурсов, скомпилированных из TXT-файлов для английского языка (EN), французского языка (Франция) (fr-FR) и русского (Россия) (ru-RU).It consists of resources compiled from .txt files for the English (en), French (France) (fr-FR), and Russian (Russia) (ru-RU) cultures. В примере текущий язык и региональные параметры, а также текущий язык и региональные параметры пользовательского интерфейса изменяются на английский (США), французский (Франция), Русский (Россия) и шведский (Швеция).The example changes the current culture and current UI culture to English (United States), French (France), Russian (Russia), and Swedish (Sweden). Затем он вызывает GetString метод для получения локализованной строки, которая отображается вместе с текущим днем и месяцм.It then calls the GetString method to retrieve the localized string, which it displays along with the current day and month. Обратите внимание, что в выходных данных отображается соответствующая локализованная строка, кроме случаев, когда текущий язык и региональные параметры пользовательского интерфейса — шведский (Швеция).Notice that the output displays the appropriate localized string except when the current UI culture is Swedish (Sweden). Поскольку языковые ресурсы для шведского языка недоступны, приложение использует ресурсы языка и региональных параметров по умолчанию, которые являются английским языком.Because Swedish language resources are unavailable, the app instead uses the resources of the default culture, which is English. Для этого примера требуются текстовые файлы ресурсов, перечисленные в следующей таблице.The example requires the text-based resource files listed in following table. Каждый из них имеет один строковый ресурс с именем DateStart .Each has a single string resource named DateStart.

cultureCulture Имя файлаFile name Имя ресурсаResource name Значение ресурсаResource value
en-USen-US DateStrings.txtDateStrings.txt DateStart СегодняToday is
fr-FRfr-FR DateStrings.fr-FR.txtDateStrings.fr-FR.txt DateStart Аужаурд'хуи, к'ест LeAujourd'hui, c'est le
ru-RUru-RU DateStrings.ru-RU.txtDateStrings.ru-RU.txt DateStart сегодняСегодня

Для компиляции примера C# можно использовать следующий пакетный файл.You can use the following batch file to compile the C# example. Для Visual Basic замените csc на vbc, а также расширение файла исходного кода .cs на .vb.For Visual Basic, change csc to vbc, and change the extension of the source code file from .cs to .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

Ниже приведен исходный код для примера (Шовдате. vb для Visual Basic версии или Шовдате. cs для версии C#).Here's the source code for the example (ShowDate.vb for the Visual Basic version or ShowDate.cs for the C# version).

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.

Комментарии

Классические приложенияDesktop Apps

В классических приложениях возвращаемый ресурс локализован для языка и региональных параметров пользовательского интерфейса текущего потока, как определено CultureInfo.CurrentUICulture свойством.In desktop apps, the resource that is returned is localized for the UI culture of the current thread, as defined by the CultureInfo.CurrentUICulture property. Если ресурс не был локализован для этого языка и региональных параметров, диспетчер ресурсов проверяет наличие ресурса, выполнив действия, описанные в разделе "процесс резервного использования ресурсов" статьи Упаковка и развертывание ресурсов .If the resource has not been localized for that culture, the resource manager probes for a resource by following the steps outlined in the "Resource Fallback Process" section of the Packaging and Deploying Resources article. Если не найдено ни одного подходящего набора локализованных ресурсов, диспетчер ресурсов вернется к ресурсам языка и региональных параметров по умолчанию.If no usable set of localized resources is found, the resource manager falls back on the default culture's resources. Если диспетчеру ресурсов не удается загрузить набор ресурсов языка и региональных параметров по умолчанию, метод создает MissingManifestResourceException исключение или, если предполагается, что набор ресурсов находится во вспомогательной сборке, MissingSatelliteAssemblyException исключение.If the resource manager cannot load the default culture's resource set, the method throws a MissingManifestResourceException exception or, if the resource set is expected to reside in a satellite assembly, a MissingSatelliteAssemblyException exception. Если диспетчер ресурсов может загрузить соответствующий набор ресурсов, но не может найти ресурс с именем name , метод возвращает значение null .If the resource manager can load an appropriate resource set but cannot find a resource named name, the method returns null.

IgnoreCaseСвойство определяет, является ли сравнение name с именами ресурсов нечувствительным к регистру (по умолчанию) или с учетом регистра.The IgnoreCase property determines whether the comparison of name with the names of resources is case-insensitive (the default) or case-sensitive.

Внимание!

Этот метод может создавать больше исключений, чем указано в списке.This method can throw more exceptions than are listed. Одна из причин этого может возникнуть, если метод, который вызывает этот метод, создает исключение.One reason this might occur is if a method that this method calls throws an exception. Например, FileLoadException исключение может быть вызвано, если произошла ошибка при развертывании или установке вспомогательной сборки, или SerializationException исключение может возникнуть, если определяемый пользователем тип вызывает исключение, определяемое пользователем, при десериализации типа.For example, a FileLoadException exception might be thrown if an error was made deploying or installing a satellite assembly, or a SerializationException exception might be thrown if a user-defined type throws a user-defined exception when the type is deserialized.

Приложения Магазина Windows 8. xWindows 8.x Store Apps

Важно!

Хотя ResourceManager класс поддерживается в приложениях для Магазина Windows 8. x, мы не рекомендуем его использовать.Although the ResourceManager class is supported in Windows 8.x Store apps, we do not recommend its use. Используйте этот класс только при разработке переносимых проектов библиотеки классов, которые можно использовать с приложениями Магазина Windows 8. x.Use this class only when you develop Portable Class Library projects that can be used with Windows 8.x Store apps. Чтобы извлечь ресурсы из приложений Магазина Windows 8. x, используйте вместо него класс Windows. ApplicationModel. Resources. ResourceLoader .To retrieve resources from Windows 8.x Store apps, use the Windows.ApplicationModel.Resources.ResourceLoader class instead.

В приложениях для Магазина Windows 8. x GetString(String) метод возвращает значение name строкового ресурса, локализованное для текущих параметров языка пользовательского интерфейса вызывающей стороны.In Windows 8.x Store apps, the GetString(String) method returns the value of the name string resource, localized for the caller's current UI culture settings. Список языков и региональных параметров является производным от предпочтительного списка языков пользовательского интерфейса операционной системы.The list of cultures is derived from the operating system's preferred UI language list. Если диспетчер ресурсов не может сопоставить name , метод возвращает значение null .If the resource manager cannot match name, the method returns null.

Потокобезопасность

GetString(String)Метод является потокобезопасным.The GetString(String) method is thread safe.

См. также раздел

Применяется к

GetString(String, CultureInfo)

Возвращает значение строкового ресурса, локализованного для указанного языка и региональных параметров.Returns the value of the string resource localized for the specified culture.

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

Параметры

name
String

Имя извлекаемого ресурса.The name of the resource to retrieve.

culture
CultureInfo

Объект, предоставляющий язык и региональные параметры, для которых локализуется ресурс.An object that represents the culture for which the resource is localized.

Возвращаемое значение

String

Значение ресурса, локализованное для указанного языка и региональных параметров, или значение null, если не удается найти name в наборе ресурсов.The value of the resource localized for the specified culture, or null if name cannot be found in a resource set.

Исключения

Параметр name имеет значение null.The name parameter is null.

Значение указанного ресурса не является строковым.The value of the specified resource is not a string.

Не найден подходящий набор ресурсов и отсутствуют ресурсы языка и региональных параметров по умолчанию.No usable set of resources has been found, and there are no resources for a default culture. Сведения об обработке этого исключения см. в подразделе "Обработка исключений MissingManifestResourceException и MissingSatelliteAssemblyException" раздела, посвященного классу ResourceManager.For information about how to handle this exception, see the "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" section in the ResourceManager class topic.

Ресурсы языка и региональных параметров по умолчанию находятся во вспомогательной сборке, которую не удалось найти.The default culture's resources reside in a satellite assembly that could not be found. Сведения об обработке этого исключения см. в подразделе "Обработка исключений MissingManifestResourceException и MissingSatelliteAssemblyException" раздела, посвященного классу ResourceManager.For information about how to handle this exception, see the "Handling MissingManifestResourceException and MissingSatelliteAssemblyException Exceptions" section in the ResourceManager class topic.

Примеры

В следующем примере метод используется GetString(String, CultureInfo) для получения ресурсов, зависящих от языка и региональных параметров.The following example uses the GetString(String, CultureInfo) method to retrieve culture-specific resources. В качестве языка и региональных параметров по умолчанию используется английский язык (EN), а также вспомогательные сборки для языков и региональных параметров "французский (Франция)" (fr-FR) и русский (Россия) (ru-RU).The example's default culture is English (en), and it includes satellite assemblies for the French (France) (fr-FR) and Russian (Russia) (ru-RU) cultures. В примере текущий язык и региональные параметры и текущий язык и региональные параметры пользовательского интерфейса меняются на русский (Россия) перед вызовом GetString(String, CultureInfo) .The example changes the current culture and current UI culture to Russian (Russia) before calling GetString(String, CultureInfo). Затем он вызывает GetString метод и DateTime.ToString(String, IFormatProvider) метод и передает CultureInfo объекты, представляющие французский (Франция) и шведский (Швеция) языки и региональные параметры, в каждый метод.It then calls the GetString method and the DateTime.ToString(String, IFormatProvider) method and passes CultureInfo objects that represent the French (France) and Swedish (Sweden) cultures to each method. В выходных данных, месяц и день месяца, а также строка, предшествующая им, появятся на французском языке, поскольку GetString метод способен получить ресурс на французском языке.In the output, the month and day of the month as well as the string that precedes them appear in French, because the GetString method is able to retrieve the French language resource. Однако при использовании шведского языка (Швеция) месяц и день месяца отображаются в шведском, хотя строка, предшествующая их, находится на английском языке.However, when the Swedish (Sweden) culture is used, the month and day of the month appear in Swedish, although the string that precedes them is in English. Это связано с тем, что диспетчеру ресурсов не удается найти локализованные шведские языковые ресурсы, поэтому вместо него возвращается ресурс для языка и региональных параметров по умолчанию.This is because the resource manager cannot find localized Swedish language resources, so it returns a resource for the default English culture instead.

Для этого примера требуются текстовые файлы ресурсов, перечисленные в следующей таблице.The example requires the text-based resource files listed in following table. Каждый из них имеет один строковый ресурс с именем DateStart .Each has a single string resource named DateStart.

cultureCulture Имя файлаFile name Имя ресурсаResource name Значение ресурсаResource value
en-USen-US DateStrings.txtDateStrings.txt DateStart СегодняToday is
fr-FRfr-FR DateStrings.fr-FR.txtDateStrings.fr-FR.txt DateStart Аужаурд'хуи, к'ест LeAujourd'hui, c'est le
ru-RUru-RU DateStrings.ru-RU.txtDateStrings.ru-RU.txt DateStart сегодняСегодня

Чтобы скомпилировать Visual Basic пример, можно использовать следующий пакетный файл.You can use the following batch file to compile the Visual Basic example. Для компиляции в C# измените vbc значение на csc и измените расширение файла исходного кода с .vb на .cs .To compile in C#, change vbc to csc, and change the extension of the source code file from .vb to .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

Ниже приведен исходный код для примера (Шовдате. vb для Visual Basic версии или Шовдате. cs для версии C#).Here's the source code for the example (ShowDate.vb for the Visual Basic version or ShowDate.cs for the C# version).

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.

Комментарии

Классические приложенияDesktop Apps

В классических приложениях, если culture имеет значение null , GetString(String, CultureInfo) метод использует текущий язык и региональные параметры пользовательского интерфейса, полученные из CultureInfo.CurrentUICulture Свойства.In desktop apps, if culture is null, the GetString(String, CultureInfo) method uses the current UI culture obtained from the CultureInfo.CurrentUICulture property.

Возвращаемый ресурс локализуется для языка и региональных параметров, заданных culture параметром.The resource that is returned is localized for the culture specified by the culture parameter. Если ресурс не был локализован для culture , диспетчер ресурсов проверяет наличие ресурса, выполнив действия, описанные в разделе "процесс резервного использования ресурсов" статьи Упаковка и развертывание ресурсов .If the resource has not been localized for culture, the resource manager probes for a resource by following the steps outlined in the "Resource Fallback Process" section of the Packaging and Deploying Resources topic. Если не удается найти подходящий набор ресурсов, диспетчер ресурсов вернется к ресурсам языка и региональных параметров по умолчанию.If no usable set of resources is found, the resource manager falls back on the default culture's resources. Если диспетчеру ресурсов не удается загрузить набор ресурсов языка и региональных параметров по умолчанию, метод создает MissingManifestResourceException исключение или, если предполагается, что набор ресурсов находится во вспомогательной сборке, MissingSatelliteAssemblyException исключение.If the resource manager cannot load the default culture's resource set, the method throws a MissingManifestResourceException exception or, if the resource set is expected to reside in a satellite assembly, a MissingSatelliteAssemblyException exception. Если диспетчер ресурсов может загрузить соответствующий набор ресурсов, но не может найти ресурс с именем name , метод возвращает значение null .If the resource manager can load an appropriate resource set but cannot find a resource named name, the method returns null.

IgnoreCaseСвойство определяет, является ли сравнение name с именами ресурсов нечувствительным к регистру (по умолчанию) или с учетом регистра.The IgnoreCase property determines whether the comparison of name with the names of resources is case-insensitive (the default) or case-sensitive.

Внимание!

Этот метод может создавать больше исключений, чем указано в списке.This method can throw more exceptions than are listed. Одна из причин этого может возникнуть, если метод, который вызывает этот метод, создает исключение.One reason this might occur is if a method that this method calls throws an exception. Например, FileLoadException исключение может быть вызвано, если произошла ошибка при развертывании или установке вспомогательной сборки, или SerializationException исключение может возникнуть, если определяемый пользователем тип вызывает исключение, определяемое пользователем, при десериализации типа.For example, a FileLoadException exception might be thrown if an error was made deploying or installing a satellite assembly, or a SerializationException exception might be thrown if a user-defined type throws a user-defined exception when the type is deserialized.

Приложения Магазина Windows 8. xWindows 8.x Store Apps

Важно!

Хотя ResourceManager класс поддерживается в приложениях для Магазина Windows 8. x, мы не рекомендуем его использовать.Although the ResourceManager class is supported in Windows 8.x Store apps, we do not recommend its use. Используйте этот класс только при разработке переносимых проектов библиотеки классов, которые можно использовать с приложениями Магазина Windows 8. x.Use this class only when you develop Portable Class Library projects that can be used with Windows 8.x Store apps. Чтобы извлечь ресурсы из приложений Магазина Windows 8. x, используйте вместо него класс Windows. ApplicationModel. Resources. ResourceLoader .To retrieve resources from Windows 8.x Store apps, use the Windows.ApplicationModel.Resources.ResourceLoader class instead.

В приложениях Магазина Windows 8. x GetString(String, CultureInfo) метод возвращает значение name строкового ресурса, локализованное для языка и региональных параметров, заданных culture параметром.In Windows 8.x Store apps, the GetString(String, CultureInfo) method returns the value of the name string resource, localized for the culture specified by the culture parameter. Если ресурс не локализован для culture языка и региональных параметров, уточняющий запрос использует весь список резервирования языков Windows 8 и останавливается после выбора языка и региональных параметров по умолчанию.If the resource is not localized for the culture culture, the lookup uses the entire Windows 8 language fallback list, and stops after looking in the default culture. Если диспетчер ресурсов не может сопоставить name , метод возвращает значение null .If the resource manager cannot match name, the method returns null.

Потокобезопасность

GetString(String, CultureInfo)Метод является потокобезопасным.The GetString(String, CultureInfo) method is thread safe.

См. также раздел

Применяется к