14

ローカリゼーションを実装するアプリケーションがあります。

リソース ファイル内の名前を動的に参照する必要があります。

Login.resx というリソース ファイルがあり、いくつかの文字列があります: foo="hello"、bar="cruel"、および baz="world"

通常、次のように参照します。 String result =Login.foo; 結果=="こんにちは";

私の問題は、コーディング時に、foo、bar、または baz のいずれを参照するかがわからないことです。「foo」、「bar」、または「baz」のいずれかを含む文字列があります。

次のようなものが必要です:

ログイン["foo"];

リソース ファイル内の文字列を動的に参照する方法があるかどうかは誰にもわかりませんか?

4

2 に答える 2

20

ResourceManagerのインスタンスを作成する必要がありますLogin.resx:

var resman = new System.Resources.ResourceManager(
    "RootNamespace.Login",
    System.Reflection.Assembly.GetExecutingAssembly()
)
var text = resman.GetString("resname");

IDE によって作成されたリソース ファイルの分離コード ファイルで、生成されたコードを確認すると役立つ場合があります。これらのファイルには基本的に、内部リソース マネージャーに対してクエリを実行する各リソースの読み取り専用プロパティが含まれています。

于 2008-08-27T10:35:46.290 に答える
2

私が行ったように、リソース ファイルを App_GlobalResources フォルダーに配置する場合は、次を使用する必要があります。

global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RootNamespace.Login", global::System.Reflection.Assembly.Load("App_GlobalResources"));

これを理解するのにしばらく時間がかかりました。これが誰かを助けることを願っています。:)

于 2010-05-20T21:38:50.297 に答える