我正在开发一个现代 UI 应用程序,我目前正在尝试从后台任务访问我的应用程序的资源文件 (Resources.resw)。两者都在同一解决方案中的不同项目中。我试过这样:
ResourceLoader resources = new ResourceLoader("MyApp/Resources");
但是我有一个错误,因为它无法访问资源地图。
有没有特定的方法可以做到这一点?
我正在开发一个现代 UI 应用程序,我目前正在尝试从后台任务访问我的应用程序的资源文件 (Resources.resw)。两者都在同一解决方案中的不同项目中。我试过这样:
ResourceLoader resources = new ResourceLoader("MyApp/Resources");
但是我有一个错误,因为它无法访问资源地图。
有没有特定的方法可以做到这一点?
万一有人遇到这种情况。
在 UWP 中,您似乎不需要做任何特别的事情来完成这项工作。如果.resw
文件包含在主 UWP 项目中,您甚至可以使用资源加载器从后台任务程序集中检索它们。对于名为LiveNotifications-ItemComplete的资源字符串,它将如下所示:
var resource = new ResourceLoader().GetString("LiveNotifications-ItemCompleted");
希望这可以帮助!
尝试仅使用资源文件的名称。如果名称是 MyResources.resw,则使用:
ResourceLoader resources = new ResourceLoader("MyResources");
虽然这是一篇旧帖子,但我想我会发布我的发现,因为当我尝试在我的 Windows 10 的 UWP 应用程序中的后台任务中使用它时,这篇帖子中的任何建议都不适合我。
我实现它的方式如下:
string str = ResourceLoader.GetForViewIndependentUse("Resources").
GetString("MyLocalizedKey");
在哪里
"Resources"
例如,是.resw
“App\String\en-US”或“App\Strings\fr-FR”中的文件名。和
"MyLocalizedKey"
是您要从资源文件中获取的值的实际键。现在请记住,如果您使用此方法,则必须将您的所有字符串放在BackgroundTask
主应用程序中。
希望这可以帮助。
我认为你正在尝试做的事情是不可能的。Resw 可能只能在商店应用程序项目中访问。至少这是我的观察,我已经尝试了我所知道的一切。
但是,如果您想将参数传递给后台任务,我可以提供解决方案。将 resw 文件添加到您的 Windows 应用商店应用项目中。当您注册后台任务时,将您的设置(或您需要传递给后台任务的任何内容)写入设备的本地设置。然后,从您的后台任务中读取本地设置中的相同设置。
它并不完美,但效果很好。如果这对您没有帮助,我很抱歉。