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

tryParentstrue,未找到可用的资源集,并且没有默认区域性的资源。

示例

以下示例调用 GetResourceSet 方法来检索法国 (法国) 区域性的区域性特定资源。 然后,它会枚举资源集中的所有资源。 它包含名为 ShowNumbers.exe 的可执行文件的源代码。 它还包含以下两个文本文件,其中包含数字的名称。 第一个 NumberResources.txt 包含英语中从 1 到 10 的数字名称:

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

第二个 NumberResources.fr-FR.txt 包含法语中从 1 到 4 的数字名称:

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返回 ,因为资源管理器尚未加载法语资源。

注解

返回的资源集表示为指定区域性本地化的资源。 如果资源尚未针对该区域性进行本地化,并且 tryParentstrueGetResourceSet 请使用资源回退规则来加载相应的资源。 如果 tryParentsfalse 并且找不到区域性特定的资源集,则该方法返回 null。 有关资源回退的详细信息,请参阅 打包和部署 资源一文中的“资源回退过程”部分。

适用于

另请参阅