Question

Pour des raisons de localisation dans WPF je voudrais faire une boucle à travers tous ResourceManagers dans un ensemble.

La raison pour laquelle je veux faire est que j'ai un balisage XAML traduire l'extension. Ce besoin d'extension de balisage pour instancier un ResourceManager en utilisant un espace de noms complet et un nom d'assemblage.

La valeur par défaut est l'assemblage ensemble dans lequel le fichier XAML est situé dans ce qui peut être récupéré comme suit:

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

Lorsqu'on leur donne un chemin relatif le chemin par défaut doit être préfixé, mais cela est une chose VS pas une chose de montage. La plupart des ensembles ont le même nom que l'espace de noms par défaut, mais ce n'est pas toujours le cas. Je voudrais à cet effet à boucle à travers tous ResourceManagers dans une assemblée et essayer de faire correspondre la dernière partie de leur espace de noms avec le chemin dictionnaire donné à l'extension de balisage.

Était-ce utile?

La solution

D'accord, j'appris comment le faire:

var resources = assembly.GetManifestResourceNames();

L'opération semble bien très coûteux, prochain défi: le chargement d'un ResourceManager dans un ResourceDictionary ..

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top