10

MSDN で説明されているようにローカライズした Windows 8 アプリがあります。私のリソース ファイルは、デフォルトの名前 ("Resources.resw") と場所 ("Strings\en-US" など) を使用します。

ここに画像の説明を入力

経由でリソースにアクセスするResourceLoaderと、ReSharper が文句を言います。例:

private readonly ResourceLoader _resourceLoader = new ResourceLoader();

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

ここに画像の説明を入力

ReSharper は、いくつかのリソース ファイルにいくつかの "TestEntry" キーがあるため、あいまいな参照を作成していると文句を言います。当たり前。それが要点です。リソース管理は正しいリソースを自動的に使用する必要があり、実際に使用されます。

では、なぜ ReSharper は不平を言うのでしょうか? ReSharper のバグですか、それとも本当に何か問題ありますか?

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

編集:ああ!私はどういうわけresource:かいくつかの特別な構文だと思っていましたが、それは単なる名前付きメソッド引数です...

4

1 に答える 1

1

新しい ResourceLoader を構築する代わりに、静的 GetForCurrentView() メソッドを使用して適切な ResourceLoader を取得してみてください。

private readonly ResourceLoader _resourceLoader = ResourceLoader.GetForCurrentView();

private void DoSomething()
{
    string s = _resourceLoader.GetString("TestEntry");
}
于 2013-09-07T19:18:31.450 に答える