ResourceManager.GetResourceSet(CultureInfo, Boolean, Boolean) Метод

Определение

Извлекает набор ресурсов для определенного языка и региональных параметров.

public:
 virtual System::Resources::ResourceSet ^ GetResourceSet(System::Globalization::CultureInfo ^ culture, bool createIfNotExists, bool tryParents);
public virtual System.Resources.ResourceSet? GetResourceSet(System.Globalization.CultureInfo culture, bool createIfNotExists, bool tryParents);
public virtual System.Resources.ResourceSet GetResourceSet(System.Globalization.CultureInfo culture, bool createIfNotExists, bool tryParents);
abstract member GetResourceSet : System.Globalization.CultureInfo * bool * bool -> System.Resources.ResourceSet
override this.GetResourceSet : System.Globalization.CultureInfo * bool * bool -> System.Resources.ResourceSet
Public Overridable Function GetResourceSet (culture As CultureInfo, createIfNotExists As Boolean, tryParents As Boolean) As ResourceSet

Параметры

culture
CultureInfo

Язык и региональные параметры, ресурсы которых необходимо извлечь.

createIfNotExists
Boolean

true для загрузки набора ресурсов, если он еще не загружен; falseв противном случае .

tryParents
Boolean

true чтобы использовать резервный ресурс для загрузки соответствующего ресурса, если набор ресурсов не найден; false для обхода резервного процесса ресурса.

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

Набор ресурсов для указанного языка и региональных параметров.

Исключения

Параметр culture имеет значение null.

tryParents is true, не найден доступный набор ресурсов, и нет ресурсов языка и региональных параметров по умолчанию.

Примеры

В следующем примере метод вызывает GetResourceSet метод для получения ресурсов, относящихся к языку и региональных параметров, для французского языка (Франция). Затем он перечисляет все ресурсы в наборе ресурсов. Он содержит исходный код для исполняемого файла с именем ShowNumbers.exe. В этом примере содержатся два текстовых файла, которые содержат имена чисел. Первый, NumberResources.txt, содержит имена чисел от одного до десяти на английском языке:

one=one
two=two
three=three
four=four
five=five
six=six
seven=seven
eight=eight
nine=nine
ten=ten

Второй, NumberResources.fr-FR.txt, содержит имена чисел от одного до четырех на французском языке:

one=un
two=deux
three=trois
four=quatre

Пакетный файл можно использовать для создания файлов ресурсов, внедрения файла ресурсов английского языка в исполняемый файл и создания вспомогательной сборки для французских языковых ресурсов. Ниже приведен пакетный файл для создания исполняемого файла с помощью компилятора Visual Basic:

resgen NumberResources.txt
vbc shownumbers.vb /resource:NumberResources.resources

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

Для компилятора C# можно использовать следующий пакетный файл:

resgen NumberResources.txt
csc shownumbers.cs /resource:NumberResources.resources

md fr-FR
resgen NumberResources.fr-FR.txt
al /out:fr-FR\ShowNumbers.resources.dll /culture:fr-FR /embed:NumberResources.fr-FR.resources
using System;
using System.Globalization;
using System.Resources;

public class Example
{
   public static void Main()
   {
      String[] numbers = { "one", "two", "three", "four", "five", "six",
                           "seven", "eight", "nine", "ten" };
      var rm = new ResourceManager(typeof(NumberResources));
      ResourceSet rs = rm.GetResourceSet(CultureInfo.CreateSpecificCulture("fr-FR"),
                                         true, false);
      if (rs == null) {
         Console.WriteLine("No resource set.");
         return;
      }

      foreach (var number in numbers)
         Console.WriteLine("{0,-10} '{1}'", number + ":", rs.GetString(number));
   }
}

internal class NumberResources {}
// The example displays the following output:
//       one:       'un'
//       two:       'deux'
//       three:     'trois'
//       four:      'quatre'
//       five:      ''
//       six:       ''
//       seven:     ''
//       eight:     ''
//       nine:      ''
//       ten:       ''
Imports System.Globalization
Imports System.Resources

Module Example
   Public Sub Main()
      Dim numbers() As String = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" }
      Dim rm As New ResourceManager(GetType(NumberResources))
      Dim rs As ResourceSet = rm.GetResourceSet(CultureInfo.CreateSpecificCulture("fr-FR"), True, False)
      If rs Is Nothing Then Console.WriteLine("No resource set.") : Exit Sub
      For Each number In numbers
         Console.WriteLine("{0,-10} '{1}'", number + ":", rs.GetString(number))
      Next            
   End Sub
End Module

Public Class NumberResources
End Class
' The example displays the following output:
'       one:       'un'
'       two:       'deux'
'       three:     'trois'
'       four:      'quatre'
'       five:      ''
'       six:       ''
'       seven:     ''
'       eight:     ''
'       nine:      ''
'       ten:       ''

Если изменить значение аргумента createIfNotExists на false, вызов метода возвращает null, так как Resource Manager еще не загружены языковые ресурсы франции.

Комментарии

Возвращаемый набор ресурсов представляет ресурсы, локализованные для указанного языка и региональных параметров. Если ресурсы не были локализованы для этого языка и региональных параметров, tryParentstrueGetResourceSet использует правила резервного восстановления ресурсов для загрузки соответствующего ресурса. Если tryParents задан false и не удается найти набор ресурсов, зависящий от языка и региональных параметров, метод возвращается null. Дополнительные сведения о резервном копировании ресурсов см. в разделе "Резервный процесс ресурсов" статьи " Упаковка и развертывание ресурсов ".

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

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