ResourceManager.GetResourceSet(CultureInfo, Boolean, Boolean) Metoda

Definicja

Pobiera zestaw zasobów dla określonej kultury.

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

Parametry

culture
CultureInfo

Kultura, której zasoby mają zostać pobrane.

createIfNotExists
Boolean

true aby załadować zestaw zasobów, jeśli nie został jeszcze załadowany; w przeciwnym razie , false.

tryParents
Boolean

true aby użyć rezerwowego zasobu, aby załadować odpowiedni zasób, jeśli nie można odnaleźć zestawu zasobów; false obejście procesu rezerwowego zasobu.

Zwraca

Zestaw zasobów dla określonej kultury.

Wyjątki

Parametr culture to null.

tryParents to true, nie znaleziono zestawu zasobów do użycia i nie ma domyślnych zasobów kultury.

Przykłady

Poniższy przykład wywołuje metodę pobierania GetResourceSet zasobów specyficznych dla kultury francuskiej (Francji). Następnie wylicza wszystkie zasoby w zestawie zasobów. Zawiera kod źródłowy pliku wykonywalnego o nazwie ShowNumbers.exe. Zawiera również następujący dwa pliki tekstowe zawierające nazwy liczb. Pierwszy NumberResources.txt zawiera nazwy liczb od jednego do dziesięciu w języku angielskim:

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

Drugi NumberResources.fr-FR.txt zawiera nazwy liczb od jednego do czterech w języku francuskim:

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

Plik wsadowy służy do generowania plików zasobów, osadzania pliku zasobów języka angielskiego w pliku wykonywalnym i tworzenia zestawu satelitarnego dla zasobów języka francuskiego. Oto plik wsadowy do wygenerowania pliku wykonywalnego przy użyciu kompilatora 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

W przypadku kompilatora języka C# można użyć następującego pliku wsadowego:

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:       ''

Należy pamiętać, że jeśli zmienisz wartość argumentu createIfNotExists na false, wywołanie metody zwróci nullwartość , ponieważ Resource Manager nie załadował jeszcze zasobów języka francuskiego.

Uwagi

Zwrócony zestaw zasobów reprezentuje zasoby zlokalizowane dla określonej kultury. Jeśli zasoby nie zostały zlokalizowane dla tej kultury i tryParents jest trueto , GetResourceSet używa reguł rezerwowych zasobów do załadowania odpowiedniego zasobu. Jeśli tryParents nie false można odnaleźć zestawu zasobów specyficznych dla kultury, metoda zwraca nullwartość . Aby uzyskać więcej informacji na temat rezerwowego zasobu, zobacz sekcję "Proces rezerwowy zasobów" w artykule Tworzenie pakietów i wdrażanie zasobów .

Dotyczy

Zobacz też