introducción
Prisma también estudió antes, pero no ha habido una comprensión en profundidad de la estructura, el proyecto ahora está tratando de transformar una aplicación de escritorio Winform WPF en un programa, y yo quiero el programa para ser probado para mantener la buena arquitectura, prisma de estos diseño se ajusta a mi la demanda, principalmente para WPF y Xamarin, para la construcción de acoplamiento flexible, mantenible marco de aplicación, comprobable, después de ver el código fuente también se inspira, bienvenido a discutir el cambio.
empezar
Voy a empezar con el orden oficial de muestras para ver la introducción de cada función es la forma de lograr.
0, PrismApplicationBase
En primer lugar, nos dicen acerca de esta clase, que es de inicio, esta clase construida toda Prism cuenta y el marco general. La mayoría de los métodos de esta clase son método virtual se puede anular añadir algunas funciones personalizadas, Prisma también la esperanza de que están diseñados.
A lo largo del prisma, UnityContainer la nada ya no es, es un gran contenedor contiene todas las clases, resolver cuando sea necesario.
Hay dos campos, ContainerExtension en UnityContainer, por supuesto, también puede personalizar otros contenedores, en el artículo son por defecto contenedores UnityContainer en contenedor también dar una explicación oficial
ModuleCatalog es la definición de una forma de cargar el módulo, el módulo es una gran ventaja Prisma, dar una explicación oficial, la intención vale más que mil palabras
Todo empieza PrismApplicationBase de una clase, cargado con todas las características de la prisma de esta clase.
Mira el método más importante, se ha completado la mayor parte de las funciones en este proceso, cuya tarea principal es la de módulo de la infraestructura, RequireTypes, RegionAdapterMappings, RegionBehaviors, se inyecta en el contenedor adecuado.
Aquí hay varias maneras de sentirse
En la sub-clase para mirar por encima PrismApplicationBase
Como he dicho anteriormente, un método de reescritura, Base.Method primera llamada, y luego añadir sus propias características
Sólo dos maneras para que los desarrolladores pueden reescribir
Crear un formulario principal y el método registerTypes, el segundo método en el que podemos añadir un poco de base necesaria para construir, ContainerRegistry de hecho registrada contenedor Unidad
Echemos un vistazo a un ejemplo de lo agradable. Ejemplos son PRISM-muestras-Wpf-master en un total de 29, https://github.com/PrismLibrary/Prism-Samples-Wpf
1, BootstrapperShell
En cuanto a es crear un Bootstraper A continuación, ejecute por un momento, a través del contenedor para crear un formulario principal, Mostrar un poco.
Mira cómo, de hecho, los artículos están en Bootstrapper
Ver estas dos clases no es un sentimiento de cuenta de pronto, el programa previo original es lo que? PrismApplicationBase método es extraer del conjunto de la solicitud, la re-implementar este momento, ¿es éste el único principio de responsabilidad?
Ejecutar aspecto, estos métodos son demasiado familiarizados con él.
Hay registros de la forma de uso, y luego, por supuesto, es la creación de un registro, toda la información se pone en los recursos para crear una variedad de formas, elegir la más simple nueva,
2, Regiones
Esto es simplemente para crear una Región
Vistazo ah, una región que se utiliza RegionManager ContentControl propiedad de dependencia creado.
Con los clásicos tres cuestiones a mirar RegionManager, lo que eres, vienes, a dónde ir.
Oh! Usted es joven insolente, ah, muy potente. Mira las comprobaciones sobre el mismo.
Mira regionName saben que hay una propiedad de dependencia, cuando la propiedad cambia de llamada
IsInDesignMode es determinar si el diseño del modo VS, llamada
Oh, o utilice la carga diferida, o contenedor creado, prisma casi todas las clases son creados por el envase
Comportamiento? WPF en el interior de la conducta es el servicio ah, es decir, poner una propiedad de dependencia a un lado, cuando se necesita el disco. Ve a ver
servicio muy estándar.
El uso de referencias débiles, gran diseño, pensar en ello, también,
Implementar la carga diferida, ah, grande, Región crea cuando la interfaz está cargado por el evento de carga.
Cargando activa sólo una vez. Me gustó la palabra WireUp, sinuoso, Unwire,
Creado por su nombre, a continuación, RegionAdapterMapping hallazgo RegionAdapter Inicializar creado por el adaptador.
RegionAdapterMapping es una colección de RegionAdapter
Crear Región, y luego añadir el comportamiento
¿Cuáles son comportamiento?
Creación Región completó.
Mira la documentación oficial en la Región
3, CustomRegions
Desea personalizar Regin, sin duda va a ser la creación de un RegionAdapter, una costumbre StackPanelRegionAdapter
Sólo mediante la lectura del código fuente para entender estos no parece difícil.
resumen
Al explorar el código fuente bajo Bootstapper, Región de cómo crear y personalizar un RegionAdapter, levantó suavemente el velo un poco de Prisma. Hay un montón de características e ideas, doy la bienvenida a explorar y aprender.