.NET TIPS 独自の.resxファイルの文字列リソースを活用するには?[2.0のみ、C#、VB]デジタルアドバンテージ 一色 政彦2007/02/15 |
|
|
「TIPS:文字列リソースを活用するには?」では、.NET Framework 2.0を使って、Windowsアプリケーション内に文字列リソースを格納して、それを実行時に取り出して利用する方法を紹介している。しかし、この方法はVisual Studio 2005(以降、VS 2005)のプロジェクト・プロパティの[リソース]タブで入力したリソースについてのみ当てはまる内容である。.NET Framework 2.0+VS 2005では、プロジェクトに追加した独自の.resxファイルに格納されたリソースについても簡単に取り扱えるようにサポートされている(.resxファイルについてはTIPS:VS.NETで画像などのリソースを利用するには?(準備編)」を参照されたい)。
そこで本稿では、.NET Framework 2.0で.resxファイルの文字列リソースを取り扱う方法について紹介する。C#とVisual Basic(以降、VB)で取り扱い方法が違う部分は、その違いについても言及する。
独自の.resxファイルへの文字列リソースの設定方法
独自の.resxファイルに文字列リソースを格納するには、Visual Studio 2005のIDEを使って、任意のプロジェクトに対し.resxファイルを追加し、そのファイルをリソース・エディタで編集するだけである。
これにはまず、ソリューション・エクスプローラなどから.resxファイル(=アセンブリ・リソース・ファイル)をプロジェクトに追加する。そして、その.resxファイルをダブルクリックするなどしてリソース・エディタで開き、そこに文字列リソースを入力していけばよい。入力の具体的な手順は次の画面を参考にしてほしい。
プロジェクトに追加された.resxファイルは自動的に「埋め込まれたリソース」としてビルドされ、プロジェクトが生成するアセンブリ(=.EXEファイルや.DLLファイル)にその文字列リソースが自動的に組み込まれる。
組み込まれたリソースの名前については注意が必要だが、これは「TIPS:文字列リソースを活用するには?」での「組み込まれた文字列リソースのリソース名」という項目で説明されている命名規則と同じ内容であるため、本稿では説明を割愛する(※C#では、ルート名に「.<フォルダ名>」が入るが、フォルダがない場合には省略されるので注意すること)。
組み込まれた文字列リソースの活用方法
それでは、実際に文字列リソースを使ってみよう。.NET Framework 2.0+VS 2005では、プロジェクトに追加された.resxファイルのリソースであっても、(プロジェクト・リソースの場合と同じように)非常に簡単にアクセスできるようになっている。
次のコードは実際にアクセスしている例だ。
|
||
組み込まれた文字列リソースにアクセスするコード(上:C#、下:VB) | ||
C#の「global::」はなくてもよい。 |
入力する際には(C#、VBともに)IntelliSenseが働く。
独自の.resxファイルのリソースでも働くIntelliSense(C#の例) |
「WindowsApplication1」というプロジェクト(既定の名前空間は「WindowsApplication1」)に、「Resource1.resx」という独自の.resxファイルを追加した場合の例。「StringResource」は文字列リソースのキー名である。 |
このアクセス方法は、「TIPS:文字列リソースを活用するには?」とほとんど同じである。具体的には、次の名前規則にのっとってアクセスできる。
- C#:「<ルート名>.<キー名>」
- VB:「My.Resources.<ファイル名>.<キー名>」
C#の<ルート名>は「<既定の名前空間>.<フォルダ名>.<ファイル名>」で構成されるが、.resxファイルをプロジェクトのルート・フォルダに直接置いた場合には「.<フォルダ名>」は不要だ。
VBの<ファイル名>とはプロジェクトに追加された.resxファイルの拡張子部分を抜いた名前である。
利用可能バージョン:.NET Framework 2.0のみ カテゴリ:Windowsフォーム 処理対象:リソース カテゴリ:クラス・ライブラリ 処理対象:リソース 関連TIPS:VS.NETで画像などのリソースを利用するには?(準備編) 関連TIPS:VS.NETで画像などのリソースを利用するには?(組込編) 関連TIPS:VS.NETで画像などのリソースを利用するには?(読込編) 関連TIPS:文字列リソースを活用するには? |
|
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|