Recuperare tutti ResourceManagers in un assieme
-
10-10-2019 - |
Domanda
Ai fini della localizzazione in WPF vorrei scorrere tutti ResourceManagers di un assieme.
Il motivo che voglio fare questo è che ho un'estensione tradurre XAML markup. Questo deve estensione di markup per istanziare un ResourceManager utilizza uno spazio dei nomi completo e un nome di montaggio.
Il valore di default è l'Assemblea l'assemblea in cui il file XAML si trova in cui possono essere recuperate nel seguente modo:
var rootObjectProvider = serviceProvider.GetService(typeof(IRootObjectProvider)) as IRootObjectProvider;
var root = rootObjectProvider.RootObject;
var assembly = ass = Assembly.GetAssembly(root.GetType());
Quando dato un percorso relativo al percorso predefinito deve essere anteposto, ma questa è una cosa che non è una cosa VS assemblaggio. La maggior parte dei gruppi hanno lo stesso nome del namespace di default, ma questo non è sempre il caso. Perciò vorrei scorrere tutti ResourceManagers in un assieme e cercare di far corrispondere l'ultima parte del loro spazio dei nomi con il percorso dizionario dato alla estensione di markup.
Soluzione
Va bene ho scoperto come si fa:
var resources = assembly.GetManifestResourceNames();
L'operazione sembra molto costoso, però, la prossima sfida: il caricamento di un ResourceManager in un ResourceDictionary ..