次の方法で共有


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 という名前の実行可能ファイルのソース コードが含まれています。 また、数値の名前を含む次の 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します。

注釈

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

適用対象

こちらもご覧ください