如何在 class 库 UWP 中使用 resw 资源文件
how can I use a resw resources file inside a class library UWP
我创建了一个 Class 库(通用 Windows UWP)项目,其中包含并在内部使用了一些 .resw 资源文件,但是如果在 class 库项目中找到了这些文件,则不会在执行 dll 期间从使用该 dll 的项目加载。只有当我在使用这个 dll 的项目中直接包含 resw 文件时,一切才能正常工作,但我必须避免这种情况。
Class 图书馆以这种方式获取资源地图(LocalizationLettersWords 是位于 Class 图书馆项目中的 .resw 文件)
ResourceMap lettersResourceMap = ResourceManager.Current.MainResourceMap.GetSubtree("LocalizationLettersWords");
但是 lettersResourceMap 变为空。
在 UWP 中,ResourceLoader
class 用于以编程方式获取资源。所以你可以使用这个:
string resource1 = ResourceLoader.GetForCurrentView().GetString("YourKey");
但在非UI线程上使用时将不起作用。在那种情况下,您应该使用方法 GetForViewIndependentUse
,例如:
string resource2 = ResourceLoader.GetForViewIndependentUse().GetString("YourKey");
您可以阅读有关 ResourceLoader
class here 的更多信息。
我创建了一个 Class 库(通用 Windows UWP)项目,其中包含并在内部使用了一些 .resw 资源文件,但是如果在 class 库项目中找到了这些文件,则不会在执行 dll 期间从使用该 dll 的项目加载。只有当我在使用这个 dll 的项目中直接包含 resw 文件时,一切才能正常工作,但我必须避免这种情况。
Class 图书馆以这种方式获取资源地图(LocalizationLettersWords 是位于 Class 图书馆项目中的 .resw 文件)
ResourceMap lettersResourceMap = ResourceManager.Current.MainResourceMap.GetSubtree("LocalizationLettersWords");
但是 lettersResourceMap 变为空。
在 UWP 中,ResourceLoader
class 用于以编程方式获取资源。所以你可以使用这个:
string resource1 = ResourceLoader.GetForCurrentView().GetString("YourKey");
但在非UI线程上使用时将不起作用。在那种情况下,您应该使用方法 GetForViewIndependentUse
,例如:
string resource2 = ResourceLoader.GetForViewIndependentUse().GetString("YourKey");
您可以阅读有关 ResourceLoader
class here 的更多信息。