我有一个Windows 8应用程序,我按照in the 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 建议(除其他相当无用之外)提议将resource:
放在键字符串之前,如_resourceLoader.GetString(resource: "TestEntry")
(然后抱怨这是多余的)。这使得ReSharper警告消失。那是做什么的?这是改进吗?
resource:
是一些特殊的语法,但它只是一个named method argument ......
答案 0 :(得分:1)
不要构造新的ResourceLoader,而是尝试使用静态GetForCurrentView()方法来检索适当的ResourceLoader。
private readonly ResourceLoader _resourceLoader = ResourceLoader.GetForCurrentView();
private void DoSomething()
{
string s = _resourceLoader.GetString("TestEntry");
}