为了在WPF中进行本地化目的,我想循环浏览组件中的所有资源管理器。

我要这样做的原因是我有一个翻译XAML标记扩展名。此标记扩展需要使用完全合格的名称空间和汇编名称实例化资源管理器。

默认组件是XAML文件所在的程序集,可以在其中检索如下:

var rootObjectProvider = serviceProvider.GetService(typeof(IRootObjectProvider)) as IRootObjectProvider;
var root = rootObjectProvider.RootObject;
var assembly = ass = Assembly.GetAssembly(root.GetType());

当给出一个相对路径时,需要预先预先预先访问默认路径,但这是一个vs事物而不是汇编的东西。大多数组件的名称与默认名称空间相同,但并非总是如此。因此,我想在集会中循环浏览所有资源管理器,并尝试将其名称空间的最后一部分与给定标记扩展的字典路径匹配。

有帮助吗?

解决方案

好吧,我发现了如何做:

var resources = assembly.GetManifestResourceNames();

但是,该操作似乎很昂贵,下一个挑战:将资源管理器加载到ResourceDictional中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top