目次  †
概要  †
- 文字列や画像などのリソース情報をKey-Valueで保持する、
拡張子が .resources または .resx のファイルのことである。 
- いろいろな言語のリソースファイルを用意すると、
多言語対応のアプリケーションを作成できる。 
- アセンブリファイル(dll,exe)に含められる。
 
特徴  †
メッセージ等の隠蔽化が可能  †
- アセンブリファイル(dll,exe)に含められるため、改竄されにくい。
 
- ただし、リソースファイルの修正を反映するには再ビルドが必要。
※ ILSpy等の逆アセンブルツールにてリソースファイルの内容が抽出されることは防げない 
実行中の差し替えが可能  †
- リソースファイルをdllに含めることにより、実行時に差し替えが可能
 
文字列以外も扱うことが可能  †
リソースファイルに画像などのバイナリファイルを文字列と同様に含めることが可能である。
この際、BASE64エンコードされた文字列がresxファイルに格納される。
多言語化対応が可能  †
カルチャを使用し、対応したリソースファイルから情報を取得することで
文言や、UI要素の多言語対応が可能となる(詳細は後述)。
作成方法  †
リソースファイルの作成方法には下記の様なものがある。
Visual Studio上でリソースファイルを作成、編集する  †
- Visual Studioでリソースを作成、編集できる。
 
- Visual Studioでリソース中に改行コードを入れる方法
 
リソース作成画面にて
[Shift]+[Enter]キー
を押下すると改行コードを挿入できる。
.NETプログラムからリソースファイルを作成する方法  †
リソースファイルを作成するAPIが用意されている。
テキストファイルからリソースファイルを作成する方法  †
.txtファイルからリソースファイルを作成するResgen.exeが用意されている。
制限事項  †
- リソースの名前に"="(半角イコール)を含めることができません。
 
- リソースの値にLF(Line Feed)を含めることができません。
 
多言語対応  †
スレッド毎に保持しているCurrentUICultureに設定されているカルチャを使用して、
対応したリソースファイルから情報を取得することで文言や、UI要素の多言語対応が可能となる。
リソースの構造  †
- ファイル名と拡張子の間にカルチャ名を挿入して
各カルチャ向けのリソースファイルを作成する。 
- 下位カルチャ用のリソースファイルには差分のみ定義可能。
 
R1.resx       既定カルチャ用リソースファイル
├R1.ja.resx     日本語用リソースファイル
├R1.en.resx     英語用リソースファイル
├R1.zh-Hans.resx  簡体字中国語用リソースファイル
└R1.zh-Hant.resx  繁体字中国語用リソースファイル
R2.resx       既定カルチャ用リソースファイル
├R2.ja-JP.resx   日本語(日本)用リソースファイル
└R2.en-US.resx   英語(米国)用リソースファイル
フォールバック機能  †
- リソースファイルのフォールバック機能とは、
使用するリソースファイルをシステムが判断することを指す。 
- CurrentUICultureのカルチャと一致するリソースファイルが
存在しない場合、親カルチャ用のリソースファイルを順に検索する。 
UIの多言語対応  †
リソースファイルを使用することで、UIの多言語対応が可能である。
- WindowsフォームとWebフォームで実装の方法が異なる。
 
- Windowsフォームの場合は、
各カルチャ用の画面をデザイナ上で作成するとリソースファイルが自動的に作成される。
 
- Webフォームの場合は、
各カルチャ用のリソースファイルを用意しておきASPXファイルにコードを記述する。
 
Windowsフォームの機能で以下には対応していないことが判明しています。
・コントロールの階層型プロパティ値をカルチャ毎に変える
・GridView/ListViewの列の順番をカルチャ毎に変える
できることを確認しながら実装する様にしてください
参考  †
参考  †