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
имеет значение 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 еще не загрузил ресурсы французского языка.
Комментарии
Возвращаемый набор ресурсов представляет ресурсы, локализованные для указанного языка и региональных параметров. Если ресурсы не были локализованы для этого языка и региональных параметров и tryParents
имеют значение true
, GetResourceSet использует правила резервного использования ресурсов для загрузки соответствующего ресурса. Если tryParents
параметр имеет значение и false
не удается найти набор ресурсов, зависящий от языка и региональных параметров, метод возвращает null
. Дополнительные сведения о резервном копировании ресурсов см. в разделе "Процесс резервного копирования ресурсов" статьи Упаковка и развертывание ресурсов .