質問

クラスライブラリを持っています - それはフレームワークを呼び出します。 AssemblyInfo.csでは、:

[assembly: NeutralResourcesLanguage("en-US")]
.

\ Resources \ Directoryの下で、 frameworkresources.resx frameworkresources.fr-fr.resx

ヘルパークラスでは、これを私のリソースマネージャとして使用しています:

private static ResourceManager manager = new ResourceManager("Framework.Resources.FrameworkResources", Assembly.GetExecutingAssembly());
.

コードでは、このようなものをする場合:

String message = manager.GetString("ArgumentNullExceptionMessage", CultureInfo.CurrentCulture);
.

私はCurrentCultureを介してデバッグしてホバーすることができ、IT(そして歌劇)はFR-FRに設定されています。

ResourceManagerは自動的にそれを自動的に配線するか、現在の文化を照会するためのコードを書くべきであるべきです、そして正しいファイルを開く?これが現在の文化であるため、Resource ManagerがFR-FR文字列を取得することを知っていると仮定して誤っていますか?

これが機能していないのかわかりません。

更新: 衛星アセンブリがありますので、コンパイル部分が大丈夫だと思います。問題が私のリソースマネージャーにあると思います。私はリソースセットを使い、ResourceManagerをこのように明示的に使用してみました:

ResourceManager manager =
    new ResourceManager("Framework.Resources.FrameworkResources",
        Assembly.GetExecutingAssembly());

Debug.WriteLine("de-DE : " + manager.GetString(resourceName, new CultureInfo("de-DE")));
Debug.WriteLine("el    : " + manager.GetString(resourceName, new CultureInfo("el")));
Debug.WriteLine("es-MX : " + manager.GetString(resourceName, new CultureInfo("es-MX")));
Debug.WriteLine("fr-FR : " + manager.GetString(resourceName, new CultureInfo("fr-FR")));
Debug.WriteLine("hi    : " + manager.GetString(resourceName, new CultureInfo("hi")));
Debug.WriteLine("zh-CN : " + manager.GetString(resourceName, new CultureInfo("zh-CN")));
.

その結果:

de-DE : Argument '%ArgumentName%' cannot be null or empty.
el    : Argument '%ArgumentName%' cannot be null or empty.
es-MX : Argument '%ArgumentName%' cannot be null or empty.
fr-FR : Argument '%ArgumentName%' cannot be null or empty.
hi    : Argument '%ArgumentName%' cannot be null or empty.
zh-CN : Argument '%ArgumentName%' cannot be null or empty.
.

だから、すべてが整っていても、私のリソースマネージャはそれらの衛星アセンブリを調べようとしていません。また、それらのアセンブリでは、上記の文字列の翻訳版があります。

役に立ちましたか?

解決

私はそれを考え出した(Interweb上でより洗練されている)。私はユニットテストからコードを実行していました、そして、MSTestは衛星アセンブリを「展開」しません。テスト設定に入り、「展開」をオフにすると、すべてが期待どおりに機能します。Ugh!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top