2010-12-16 36 views
1

對於Wpf中的本地化目的,我想遍歷程序集中的所有資源管理器。檢索程序集中的所有資源管理器

我想這樣做的原因是我有一個翻譯xaml標記擴展名。此標記擴展需要使用完全限定的名稱空間和程序集名稱來實例化ResourceManager。

默認組件是其中XAML文件位於如下其中可檢索的組件:

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

當給定一個相對路徑的默認路徑需要預先考慮,但是這是一個VS事情不是集會的東西。大多數程序集與默認名稱空間具有相同的名稱,但情況並非總是如此。因此,我想循環遍歷Assembly中的所有ResourceManager,並嘗試將其名稱空間的最後部分與給予標記擴展的字典路徑匹配。

回答

0

好吧,我發現瞭如何做到這一點:

var resources = assembly.GetManifestResourceNames(); 

操作似乎很昂貴的,雖然,下一個挑戰:在ResourceDictionary中加載一個ResourceManager ..