2

私はこの関数を持っており、 OkayMessagesと呼ばれるこの特定のリソース ファイルから翻訳された値を取得するのに問題なく動作します。

public static string GetResourceString(string resourceKey){
  ResourceManager resourceManager = Resources.OkayMessages.ResourceManager;
  return resourceManager.GetString(resourceKey);
}

しかし、私は複数のリソースファイルを持っており、この関数がそれらのファイルからも値を取得するようにしたい. 以下のコードとそのバリエーションを使用しようとしましたが、常にエラーが発生します。

public static string GetResourceString(string resourceFile, string resourceKey){
  ResourceManager resourceManager = new System.Resources.ResourceManager("Resources." + resourceFile, Assembly.GetExecutingAssembly());
  return resourceManager.GetString(resourceKey);
}

ほとんどの場合、次のようなエラーが発生しました。指定されたカルチャまたはニュートラル カルチャに適したリソースが見つかりませんでした。「Resources.OkayMessages.resources」がアセンブリに正しく埋め込まれているか、リンクされていることを確認してください。

更新:リソース ファイルに \App_GlobalResources\ フォルダーを使用していますが、これが問題のようです。プロジェクトのルートにリソース ファイルを配置すると、問題なく ResourceManager を初期化できます。

4

2 に答える 2

5

しばらく間違った方向に検索した後、この問題に対する最も簡単な答えを見つけました。という方法があることがわかりましたGetGlobalResourceObject

したがって、私の場合、すべてを実行する次のコード行を使用しています。

GetGlobalResourceObject("OkayMessages", "PasswordChanged").ToString();
于 2012-07-08T15:57:54.203 に答える