複数のリソース ファイル (.resx) を持つリソース DLL から文字列と画像に正しくアクセスする方法を知る必要があります。
私が取り組んでいる非常に大きなプロジェクトがあり、それぞれが複数のパネルを持つ複数の winform で構成されています。各フォームに独自の res ファイルを作成し、アプリケーションを複数のリソース DLL ではなく 1 つのリソース DLL に制限することで、少し整理しようとしています。
問題は、リソース DLL に新しいリソース ファイルを追加しようとして、たとえば、新しく作成された resx ファイルに保存されている文字列にアクセスしようとしたときです。ResourceManager は null 文字列を返します。
ResourceManager オブジェクトを作成して文字列を取得する方法は次のとおりです
static public string GetResourceString(string sStringName)
{
System.Reflection.Assembly myDllAssembly = System.Reflection.Assembly.LoadFile(ResPath);
string[] allResourcesinDLL = myDllAssembly.GetManifestResourceNames();
ResourceManager ResInstance = new ResourceManager(allResourcesinDLL[0].Replace(".resources", string.Empty), myDllAssembly);
return ResInstance.GetString(sStringName);
}
ここで、ResPath はリソース DLL へのパスであり、sStringName はリソース/文字列のタイトルです。
読み取るresxファイルを指定する方法があるかどうか、または他の方法で処理する必要があるかどうかはわかりません。私のアプリケーションは .net 2.0 フレームワークを使用してコンパイルされているため、使用できる API に制限があることに注意してください。