2011-06-08 7 views
9

Acabo de empezar a aprender Silverlight con el MVVM Light framework. Recientemente comencé a entrar en las funciones de Messenger en MVVM Light.MVVM Light Tipos de mensajes: ¿Cuándo usar cada tipo?

Hasta ahora he descargado y buscado en el Clean Shutdown example publicado por Laurent y tengo una comprensión básica de cómo funciona la clase de Messenger, pero todavía no estoy seguro de cuándo usar qué tipo de mensaje.

Desde el sitio, aquí están los tipos de mensajes:

  • MessageBase: Una clase de mensaje simple, llevando información opcional sobre el remitente del mensaje.
  • GenericMessage: Un mensaje simple con una propiedad de contenido de tipo T.
  • NotificationMessage: Se utiliza para enviar una notificación (como una cadena) a un destinatario . Por ejemplo, guarde sus notificaciones como constantes en una clase de notificaciones , y luego envíe Notificaciones.Guardelas en un destinatario.
  • NotificationMessage: Igual que el anterior, pero con una propiedad genérica de contenido . Se puede usar para pasar un parámetro al destinatario juntos con la notificación.
  • NotificationMessageAction: Envía una notificación a un destinatario y permite que el destinatario vuelva a llamar al remitente .
  • NotificationMessageAction: Envía una notificación a un destinatario y permite que el destinatario llame al remitente con un parámetro genérico.
  • DialogMessage: Se utiliza para solicitar que un receptor (como ejemplo la vista) muestra un cuadro de diálogo, y pasa el resultado de nuevo a la persona que llama (usando una devolución de llamada ). El destinatario puede elegir cómo mostrar el cuadro de diálogo, ya sea con un cuadro de mensaje estándar, con un emergente personalizado , etc ...
  • PropertyChangedMessage: Se utiliza para transmitir que una propiedad cambia en el remitente. Cumple el mismo propósito que el evento PropertyChanged , pero de una manera menos estricta.

Mi pregunta es la siguiente: ¿Puede alguien explicar a mí cuando yo usaría normalmente cada uno de estos tipos de mensajes o que me señale un artículo que analiza los pros y los contras del uso de cada tipo de mensaje?

Respuesta

6

Se ahorrará muchos dolores de cabeza y molestias si no intenta ajustar su codificación a los mensajes, pero haga que los mensajes hagan lo que usted desea. No tengas miedo de subclasificar los mensajes para que hagan lo que realmente quieres de ellos. Ese fue uno de mis primeros errores al usar mvvm-light.

La mayoría de mis mensajes utilizan el GenericMessage con el genérico de ser lo que estoy tratando de transferir ...

por ejemplo tengo una clase que ExceptionMessage

Public ExceptionMessage:GenericMessage<System.Exception> 

entonces puedo reemplazar los constructores con 3 los valores adecuados

Encontré que es MUCHO más fácil hacerlo de esta manera que calzar las cosas en su lugar.

Tengo un ejemplo en profundidad here

Su otra pregunta acerca de mensajería en la que tuve acceso a mi código ...

+0

subclases también hace que el código más limpio que los mensajes puedan ser debidamente nombrados. Además, permite un manejo de mensajes más limpio y más centrado, es decir, mejor direccionable. – AxelEckenberger

Cuestiones relacionadas