Pregunta

Para fines de localización en Wpf me gustaría bucle a través de todos los ResourceManagers en un ensamblaje.

La razón por la que quiero hacer esto es que tengo una extensión traducir marcado XAML. Este necesidades extensión de marcado de ejecutar un ResourceManager utilizando un espacio de nombre completo y un nombre de ensamblado.

El valor predeterminado montaje es el conjunto en el que el archivo xaml se encuentra en que puede ser recuperada como sigue:

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

Cuando se le dé una ruta relativa de la ruta por defecto debe ser antepuesto, pero esto no es una cosa VS una cosa montaje. La mayoría de las asambleas tienen el mismo nombre que el nombre por defecto, pero esto no es siempre el caso. Para ello me gustaría recorrer todos ResourceManagers en una Asamblea y tratar de coincidir con la última parte de su espacio de nombres con el camino diccionario dado a la extensión de marcado.

¿Fue útil?

Solución

De acuerdo descubrí cómo hacerlo:

var resources = assembly.GetManifestResourceNames();

La operación parece aunque bastante costoso, próximo reto: la carga de una ResourceManager en un ResourceDictionary ..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top