Pregunta

¿Cómo puedo organizar múltiples aplicaciones WPF compuestas para que compartan un solo proyecto Shell pero llenen sus catálogos de módulos desde diferentes archivos App.config?

Estoy escribiendo un conjunto de aplicaciones usando la Guía de aplicaciones compuestas para WPF. La funcionalidad de cada aplicación está determinada por la disponibilidad de diferentes módulos, que se enumeran en la App.config de Shell. Al dar a cada aplicación un App.config diferente, puedo especificar qué módulos puede usar cada aplicación.

Sin embargo, me gustaría compartir un solo proyecto de Shell entre todas las aplicaciones para una apariencia común. Inicialmente, creé una solución para cada aplicación, agregué el proyecto Shell y luego agregué los módulos relevantes. El problema es que el proyecto Shell común solo tiene un archivo App.config, y no puedo cambiarlo por solución.

Rellenar el catálogo a través del código no evita este problema: todavía habría código específico de la aplicación en el Shell que de alguna manera debe ser activado por la Solución que estoy usando.

¿Fue útil?

Solución

Lo que decidí hacer fue tratar el Shell como su propio módulo. Cada aplicación tiene su propia solución y proyecto, que contienen los archivos individuales App.config. También tienen sus propias clases de Bootstrapper. Bootstrapper en cada aplicación crea una instancia de Shell.

Otros consejos

Además de los módulos de codificación física y la carga de módulos desde la configuración, también puede cargar módulos dinámicamente desde un directorio determinado.

Entonces, para configurar diferentes "aplicaciones" que todos usan el mismo shell, crearía un archivo por lotes que copia los módulos correctos para cada aplicación en carpetas separadas, creando así las diferentes aplicaciones.

La documentación de la Biblioteca de orientación compuesta tiene más información sobre cómo configurar su proyecto para cargar módulos dinámicamente desde un directorio.

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