ResourceManager クラス
カルチャ固有のリソースに、実行時に簡単にアクセスできるようにします。
この型のすべてのメンバの一覧については、ResourceManager メンバ を参照してください。
System.Object
System.Resources.ResourceManager
System.ComponentModel.ComponentResourceManager
<Serializable>
Public Class ResourceManager
[C#]
[Serializable]
public class ResourceManager
[C++]
[Serializable]
public __gc class ResourceManager
[JScript]
public
Serializable
class ResourceManager
スレッドセーフ
この型は、マルチスレッド操作に対して安全です。
解説
ResourceManager クラスは、カルチャ固有のリソースを検索し、ローカライズされたリソースが存在しない場合は代替となるリソースを提供し、リソースのシリアル化をサポートします。
ResourceManager のメソッドを使用すると、呼び出し元は GetObject メソッドと GetString メソッドを使用して、特定カルチャのリソースにアクセスできるようになります。既定では、これらのメソッドは、呼び出したスレッドの現在のカルチャ設定で決定されているカルチャに固有のリソースを返します。詳細については、 Thread.CurrentUICulture のトピックを参照してください。呼び出し元で ResourceManager.GetResourceSet メソッドを使用すると、カルチャ フォールバック規則を無視し、特定のカルチャのリソースを表す ResourceSet を取得できます。取得した ResourceSet を使用して、そのカルチャ用にローカライズされているリソースに名前でアクセスできます。
理想的には、すべての言語のリソースを作成する必要があります。または、少なくとも 1 つ、言語のわかりやすいサブセットを作成する必要があります。リソース ファイル名は basename.cultureName.resources の名前付け規則に従います。basename は、アプリケーション名か、実行単位によって異なりますが、クラス名です。 CultureInfo の Name プロパティを使用して cultureName が決定されます。ニュートラル カルチャ (InvariantCulture で返されます) に使用するリソースの名前は、basename.resources にする必要があります。
たとえば、アセンブリに複数のリソースがあり、これがリソース ファイルに格納されていて、リソース ファイルの basename が "MyResources"
だと想定します。これらのリソース ファイルの名前は、 "MyResources.ja-JP.resources"
、 "MyResources.de.resources"
、 "MyResources.zh-CHS.resources"
、または "MyResources.fr-BE.resources"
のようになり、日本語、ドイツ語、繁体字中国語、フランス語 (ベルギー) の各リソースが含まれます。既定のリソース ファイルの名前は MyResources.resources です。カルチャ固有のリソース ファイルは、通常、カルチャごとのサテライト アセンブリにパッケージ化されます。既定のリソース ファイルはメイン アセンブリに入れる必要があります。
この basename を持つリソースを表すために ResourceManager が作成されているとします。 ResourceManager を使用して、 "MyResources.ja-JP.resources"
をカプセル化する ResourceSet を取得できます。この場合は、 GetResourceSet(new CultureInfo ("ja-JP"), TRUE, FALSE)
のようにメソッドを呼び出します。また、 "MyResources"
に "TOOLBAR_ICON"
というリソースが含まれていることがわかっている場合は、日本語にローカライズしたこのリソースの値を取得できます。この場合は、 GetObject("TOOLBAR_ICON", new CultureInfo("ja-JP"))
のようにメソッドを呼び出します。
ResourceManager のほとんどの基本的な用途では必ずしも必要ではありませんが、一般に出荷するアセンブリでは、 SatelliteContractVersionAttribute を使用して、サテライトを再配置せずにメイン アセンブリのバージョン管理をサポートし、 NeutralResourcesLanguageAttribute を使用して、存在しないサテライト アセンブリの検索を防止する必要があります。サテライト アセンブリのバージョン管理サポートの詳細については、 サテライト アセンブリに含まれるリソースの取得 のトピックを参照してください。 サテライト アセンブリの作成の詳細については、「 サテライト アセンブリの作成 」を参照してください。Windows フォーム ダイアログのローカリゼーションの支援については、Microsoft .NET Framework SDK の「 Windows フォーム リソース エディタ (Winres.exe) 」ツールを参照してください。
リソースの設定と作成の詳細については、「 アプリケーションのリソース 」を参照してください。
注意 リソースは、 ReleaseAllResources メソッドによって明示的に解放されるまでロックされているため、ASP.NET アプリケーションでスタンドアロンの .resources ファイルを使用すると、XCOPY の配置が損なわれます。ASP.NET アプリケーションにリソースを配置する場合は、.resources ファイルをサテライト アセンブリにコンパイルする必要があります。
注意 プライベートとしてマークされたリソースには、配置されているアセンブリ内だけでアクセスできます。サテライト アセンブリにはコードが含まれていないため、そのプライベート リソースはどんな機構も使用できなくなります。したがって、サテライト アセンブリ内のリソースは、メイン アセンブリからアクセスできるように、必ずパブリックにしてください。メイン アセンブリに埋め込まれたリソースは、プライベートであるかパブリックであるかにかかわらず、メイン アセンブリから使用できます。
必要条件
名前空間: System.Resources
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: Mscorlib (Mscorlib.dll 内)
参照
ResourceManager メンバ | System.Resources 名前空間 | CultureInfo | SatelliteContractVersionAttribute | 国際対応アプリケーションの開発