我正在使用Universal app(使用Prism)。这是我的情景。
我在以下项目中有一个字符串资源文件:
1)Windows - Resources.resw - 此文件具有特定于窗口的字符串资源。
2)WindowsPhone - Resources.resw - 此文件具有特定于电话的字符串资源
3)Shared - SharedResources.resw - 此文件具有在Windows和手机之间通用的字符串资源。
现在,我如何让ResourceLoader搜索资源" SharedResources.resw"和#34; Resources.resw"这两个文件?
有什么建议吗?
提前致谢。
答案 0 :(得分:0)
我已将ResourceLoader类扩展如下:
public class ResourceLoaderEx : IResourceLoaderEx
{
//This method is used when the PCL contains .resx file instead of .resw.
public string GetString(string resource, string baseName, Assembly assembly) {
ResourceManager resourceManager = new ResourceManager(baseName, assembly);
return resourceManager.GetString(resource);
}
public string GetString(string resource)
{
ResourceLoader resourceLoader;
if (resource.Contains("\\"))
{
resourceLoader = ResourceLoader.GetForCurrentView(resource.Substring(0, resource.LastIndexOf("\\")));
resource = resource.Substring(resource.LastIndexOf("\\") + 1);
}
else
{
resourceLoader = ResourceLoader.GetForCurrentView();
}
return resourceLoader.GetString(resource);
}
}
本课程包括以下场景(下面的代码在我的UILoic类下):
var windowsSpecificResource = resourceLoader.GetString(@"windows"); // This will fetch the resource from Resources.resw file
var sharedResource = resourceLoader.GetString(@"SharedResources\testforshared"); // This will fetch the resource from the SharedResources.resw file
var pclResource = resourceLoader.GetString("SaveErrorMessage", "Contoso.UILogic.Strings.Resources", typeof(Strings.Resources).GetTypeInfo().Assembly); // This will fetch the resource from Resources.resx file which is in my UILogic project.
有任何意见吗?