10

私はin the MSDNのようにローカライズするWindows 8アプリを持っています。私のリソースファイルは、デフォルトの名前( "Resources.resw")と場所( "Strings \ en-US"など)を使用します。ReSharperがResourceLoader.GetStringのこの使用について不平を言っているのはなぜですか?

enter image description here

私はResourceLoader経由でリソースにアクセスすると、その後、ReSharperのは文句を言います。例:複数のリソースファイル内のいくつかの「TestEntry」キーがあるので

private readonly ResourceLoader _resourceLoader = new ResourceLoader(); 

private void DoSomething() 
{ 
    string s = _resourceLoader.GetString("TestEntry"); 
} 

enter image description here

ReSharperのは、私はあいまいな参照を作成していていることを訴えます。ダー。それは全体のポイントです。リソース管理は自動的に正しいリソースを使用する必要があります。

なぜ、ReSharperは不平を言うのですか? ReSharperのバグでしょうかです本当に何か間違っていますか?ところで

:ReSharperの _resourceLoader.GetString(resource: "TestEntry") のように、(他のかなり役に立たないものの間で)キー文字列の前に resource:を置く オファーを推奨します(そして、それは冗長だと文句を言い) 。これにより、ReSharperの警告が消えます。それは何ですか?それは改善ですか?

編集:Oh my!私は何とかresource:は、いくつかの特別な構文であると思ったが、それは代わりに新しいResourceLoaderを構築する、適切なResourceLoaderを取得するために、静的GetForCurrentView()メソッドを使用してみてくださいちょうどnamed method argument ...

+19

「ReSharperが推奨します...そして、それが重複していると文句を言う」私はResharperが私のガールフレンドのように見えると思っています。 –

+7

"ReSharperは(他のかなり役に立たないものの中でも)キー文字列の前にリソースを入れることをお勧めします。 ReSharperの[クイックフィックス](http://www.jetbrains.com/resharper/features/code_analysis.html#Quick-Fixes)と[コンテキストアクション](http://www.jetbrains.com/resharper /features/coding_assistance.html#Context_Actions) – AakashM

+0

@AakashM:おっと。はい、あなたは正しいです。私はそれに応じて私の質問を編集しました。 –

答えて

1

です。

private readonly ResourceLoader _resourceLoader = ResourceLoader.GetForCurrentView(); 

private void DoSomething() 
{ 
    string s = _resourceLoader.GetString("TestEntry"); 
} 
関連する問題