Frage

Für die Lokalisierung Zwecke in Wpf I Schleife in einer Baugruppe durch alle ResourceManagers möchten.

Der Grund, warum ich dies tun möchte, ist, dass ich eine XAML-Markup Erweiterung übersetzen. Dieses Markup Erweiterung braucht einen Resourcemanager mit einem vollständig qualifizierten Namespace und eine Montage Namen instanziiert.

Die Standard-Montage ist die Montage in dem die XAML-Datei befindet, in dem sich wie folgt ermittelt werden:

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

Wenn Sie einen relativen Pfad angesichts der Standardpfad muss vorangestellt werden, aber dies ist eine VS Sache nicht eine Versammlung Sache. Die meisten Systeme haben die gleichen Namen wie der Standard-Namespace, aber dies ist nicht immer der Fall. Dafür ich eine Schleife durch alle ResourceManagers in einer Versammlung möchte und versuchen, den letzten Teil ihres Namensraum mit dem Verzeichnispfad zu der Markup-Erweiterung gegeben entsprechen.

War es hilfreich?

Lösung

Okay, ich herausgefunden habe, wie es geht:

var resources = assembly.GetManifestResourceNames();

Der Vorgang scheint ziemlich teuer aber nächste Herausforderung: einen Resourcemanager in einem Resource loading ..

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top