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