10

我有一个本地化的 Windows 8 应用程序,如MSDN 中所述。我的资源文件使用默认名称(“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建议(以及其他相当无用的东西)将 offer放在resource:键字符串之前,例如_resourceLoader.GetString(resource: "TestEntry") (然后抱怨它是多余的)。这会使 ReSharper 警告消失。那有什么作用?是改进吗?

编辑:天哪!我不知何故认为resource:是一些特殊的语法,但它只是一个命名方法参数......

4

1 回答 1

1

尝试使用静态 GetForCurrentView() 方法检索适当的 ResourceLoader,而不是构造新的 ResourceLoader。

private readonly ResourceLoader _resourceLoader = ResourceLoader.GetForCurrentView();

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