Prisma de 3 módulos de carga Fuente Interpretación

introducción

En el proceso de desarrollo de software, el desarrollo de la forma total de componente similares, preferiblemente ninguna interacción entre los componentes, las pruebas independientes. Prisma de los módulos satisfacen esto.

Este diagrama de arquitectura muy bien explicar el concepto de módulos Prisma

apoyo Prism a través de archivos de configuración, carpetas, Módulo de manera cargado manualmente, y para verificar módulo de carga, y los ciclos de repetición incluyendo la verificación de dependencia

módulo de carga para Prism

mirada directa a la fuente de la misma

0, módulos cargados

  • Módulos de carga se basan principalmente ModuleCatalog para descubrir módulo,
  • Por ModuleManager módulo de carga al módulo y validado para asegurar el orden módulo de carga,
  • ModuleInitializer responsable de la inicialización de módulos, incluyendo módulos que deben ser carga y se muestra la interfaz de usuario elementos de la clase y así sucesivamente.

Llamar al método de inicialización Prism.PrismApplicationBase

1585574598775

Crear un directorio

1585574672183

RegisterRequiredTypes método de inyección ModuleManager, ModuleInitializer al recipiente,

1585574816406

El último método InitializeModules de llamada, y llamar al método Run del ModuleManager

1585574852698

Observación de dos nombres de entender, es el primer módulo de descubrimiento y el módulo de verificación, el segundo módulo se carga y se inicializa.

1585574917778

mirada método initialize ModuleCatalogBase, y bastante seguro

1585574973443

1585574987953

La verificación es aún más interesante

1585575114834

verificación de repetibilidad

1585571571246

Por moduleNames nombre del módulo para determinar si hay se carga también, que si se arroja una excepción

verificación de la secuencia Loading

1585572866324

En el aspecto mismo tiempo en ModuleBase

1585575240730

Cada vez que se verifican cambios artículos

1585575308583

1585575327939

Encontrado que mirar por encima de método de verificación de ModuleManage LoadModulesWhenAvailable

1585575416018

1585575456472

1585575508444

1585575521164

Ver la final ModuleInitializer utiliza para inicializar el módulo. Linq consigue mediante la técnica de carga de retardo proceso.

1585575588013

Encontramos que este método debe ser implementado módulo de interfaz IModle. Y aquí llamadas registerTypes y método OnInitialized.

Después de leer el módulo es cargado, mirada en el ejemplo siguiente se

1, cargado por AppSetting

Mira los perfiles

1585575781099

en la inicialización

1585575803440

Ver CreateModuleCatalog reescritos, se ha introducido previamente módulo de control ModuleCatalog es el descubrimiento y validación.

1585575869468

1585575909447

1585575962111

Ver nombre de sección debe ser módulos.

Módulo lógico depende de analizar, y, finalmente, llamar al método AddModule

1585577943221

UIElement relacionada nuevo ModuleAModule en la carga.

2, a través del código de carga

Al cargar el código sea más sencilla, llame al defecto ModuleCatalog cargado directamente relacionada Módulo ConfigureModuleCatalog acercarse a ella.

1585578152349

Código sin cambios en ModuleAModule

Esta lógica 0 que ha sido explicado con claridad, y no en la descripción.

3, por la carga catálogo

Al cargar el directorio, si no ve la fuente de la forma de diseñar, crear un ModuleCatalog, la dirección del directorio entrante cuando se crea. Se encuentra en el interior del método directorio InnerLoad correspondiente, y busque la clase implementa la interfaz IModule por asambleas que atraviesan, se carga la clase.

Fuente también se veía exactamente en ese

1585578439577

1585578580233

Leer el funcionario considera que el código fuente se encontró más problemas, tales como la creación de un AppDoamin para cargar el ensamblado para garantizar el aislamiento y la seguridad de los datos. E incluso para crear una clase para reflejar el conjunto InnerModuleInfoLoader

1585578854546

Esa distribución acusaciones es muy buena, incluso podemos escribir un módulo para cargar la clase ModuleCatalog través de la red.

4, cargando manualmente

1585579279370

En primer lugar, en un módulo de carga en ConfigureModuleCatalog y InitializationMode se proporciona en la demanda,

1585579366391

A continuación, puede utilizar el Módulo LoadModule carga antes de métodos de carga cuando sea necesario

1585579427491

1585579463038

Es de destacar que no proporcionaron una interfaz Módulo de desinstalación.

resumen

Este se introduce el principio bajo los módulos cargados, de hecho,

  • ModuleCatalog responsable del descubrimiento del módulo.
  • Por ModuleManager módulo de carga al módulo y validado para asegurar el orden módulo de carga,
  • ModuleInitializer responsable de la inicialización de módulos, incluyendo módulos que deben ser carga y se muestra la interfaz de usuario elementos de la clase y así sucesivamente.

La próxima salida introducirá el MVVM realización.

Supongo que te gusta

Origin www.cnblogs.com/lovexinyi/p/12601999.html
Recomendado
Clasificación