Resourceに深く入り込み、多言語サポートの応用詳細を実現する。
まず、アプリケーションがあると仮定して、リソースファイルResource 1.rextを右ボタンで追加します。
Resource 1.ressの中は以下の通りです。
Main関数は以下の通りです。static void Main(){ Resource Manager resource Manager=new Resource Manager( "CAStudy.Resource 1" Asembly.GetExecutingAsssemble()
Consolie.Writeline(「String 1:」+resource Manager.Get String(「String 1」); Consolie.Writeline(「String 1:」+Resource 1.String 1) Consone.Readline();
使用したResource Managerの構造関数は以下の通りです。
[Security SafeCritical]public Resource Manager(string baseName、Asssembly);
アプリケーションがコンパイルされると、Resource 1.rexsはResource 1のクラスにコンパイルされます。だからbaseNameが何なのか分からないなら、こうしてもいいです。
Resource Manager resource Manager=new Resource Manager( Resource 1.Resource Manager.BaseName、 Asembly.GetExecutingAsssemble()
または、ILコードを確認したら、次のようになります。
運転結果は以下の通りです。
もし私たちが英語-米国(en-US)の人をサポートして訪問すると:
Resource 1.rexsをコピーして、Resource 1.en-US.rexsを生成します。
注意中間にEN-USが多く出ている以外は、他は同じです。
もちろん、中国語-台湾をサポートする必要があれば、Resource 1.zh-TW.rexsを生成することができます。
Resource 1.en-US.rextの内容は以下の通りです。
今はハローです。
使う時は修正だけ必要です。
Thread.C urrent Thread.Culture=new Culture Info(「en-US」)
なぜCurrenentUCultureを修正すればいいですか?
Resource 1.ressの中は以下の通りです。
Main関数は以下の通りです。static void Main(){ Resource Manager resource Manager=new Resource Manager( "CAStudy.Resource 1" Asembly.GetExecutingAsssemble()
Consolie.Writeline(「String 1:」+resource Manager.Get String(「String 1」); Consolie.Writeline(「String 1:」+Resource 1.String 1) Consone.Readline();
使用したResource Managerの構造関数は以下の通りです。
[Security SafeCritical]public Resource Manager(string baseName、Asssembly);
アプリケーションがコンパイルされると、Resource 1.rexsはResource 1のクラスにコンパイルされます。だからbaseNameが何なのか分からないなら、こうしてもいいです。
Resource Manager resource Manager=new Resource Manager( Resource 1.Resource Manager.BaseName、 Asembly.GetExecutingAsssemble()
または、ILコードを確認したら、次のようになります。
運転結果は以下の通りです。
もし私たちが英語-米国(en-US)の人をサポートして訪問すると:
Resource 1.rexsをコピーして、Resource 1.en-US.rexsを生成します。
注意中間にEN-USが多く出ている以外は、他は同じです。
もちろん、中国語-台湾をサポートする必要があれば、Resource 1.zh-TW.rexsを生成することができます。
Resource 1.en-US.rextの内容は以下の通りです。
今はハローです。
使う時は修正だけ必要です。
Thread.C urrent Thread.Culture=new Culture Info(「en-US」)
なぜCurrenentUCultureを修正すればいいですか?
// :
// 。
public CultureInfo CurrentUICulture { get; set; }
完全なMain関数は以下の通りです。static void Main()
{
ResourceManager resourceManager = new ResourceManager(
Resource1.ResourceManager.BaseName,
Assembly.GetExecutingAssembly());
Console.WriteLine("String1 :" + resourceManager.GetString("String1"));
Console.WriteLine("String1 :" + Resource1.String1);
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Console.WriteLine("String1 :" + resourceManager.GetString("String1"));
Console.WriteLine("String1 :" + Resource1.String1);
Console.ReadLine();
}
運転結果は以下の通りです。