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);
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という名前の実行可能ファイルのソース コードが含まれています。 この例には、数値の名前を含む 2 つのテキスト ファイルが含まれています。 1 つ目の NumberResources.txtには、英語の 1 から 10 までの数字の名前が含まれています。

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

2 つ目の 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 に変更すると、Resource Managerはまだフランス語リソースを読み込んでいないため、メソッド呼び出しは null を返します。

注釈

返されるリソース セットは、指定したカルチャ用にローカライズされたリソースを表します。 リソースがそのカルチャ用にローカライズされておらず、 tryParentstrueされている場合、 GetResourceSet はリソース フォールバック ルールを使用して適切なリソースを読み込みます。 tryParentsfalseされ、カルチャ固有のリソース セットが見つからない場合、メソッドはnullを返します。 リソースフォールバックの詳細については、「リソースの パッケージ化とデプロイ 」の「リソース フォールバック プロセス」セクションを参照してください。

適用対象

こちらもご覧ください