Partilhar via


ResourceManager.GetResourceSet(CultureInfo, Boolean, Boolean) Método

Definição

Recupera um conjunto de recursos para uma cultura específica.

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

Parâmetros

culture
CultureInfo

A cultura cujos recursos devem ser recuperados.

createIfNotExists
Boolean

true carregar o recurso definido, se ele ainda não foi carregado; caso contrário, false.

tryParents
Boolean

true usar o recurso de fallback para carregar um recurso apropriado se o conjunto de recursos não pode ser encontrado; false para ignorar o processo de fallback de recurso.

Retornos

Conjunto de recursos para a cultura especificada.

Exceções

O parâmetro culture é null.

tryParents é true, não foi encontrado nenhum conjunto utilizável de recursos e não há nenhum recurso de cultura padrão.

Exemplos

O exemplo a seguir chama o GetResourceSet método para recuperar recursos específicos da cultura francesa (França). Em seguida, ele enumera todos os recursos no conjunto de recursos. Ele contém o código-fonte de um executável chamado ShowNumbers.exe. Ele também inclui os dois arquivos de texto a seguir que contêm os nomes dos números. O primeiro, NumberResources.txt, contém os nomes de números de um a dez no idioma inglês:

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

O segundo, NumberResources.fr-FR.txt, contém os nomes de números de um a quatro no idioma francês:

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

Você pode usar um arquivo em lote para gerar os arquivos de recurso, inserir o arquivo de recurso em inglês no executável e criar um assembly satélite para os recursos de idioma francês. Aqui está o arquivo em lote para gerar um executável usando o compilador do 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

Para o compilador C#, você pode usar o seguinte arquivo em lote:

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

Observe que, se você alterar o valor do createIfNotExists argumento para false, a chamada de método retornará null, já que Resource Manager ainda não carregou os recursos de idioma francês.

Comentários

O conjunto de recursos retornado representa os recursos localizados para a cultura especificada. Se os recursos não tiverem sido localizados para essa cultura e tryParents for true, GetResourceSet usará regras de fallback de recursos para carregar um recurso apropriado. Se tryParents for false e um conjunto de recursos específico da cultura não puder ser encontrado, o método retornará null. Para obter mais informações sobre o fallback de recursos, consulte a seção "O processo de fallback de recursos" no artigo Empacotamento e Implantação de Recursos .

Aplica-se a

Confira também