que he tenido lo mismo sucedió a mí cuando se actualiza desde una versión anterior de MVVM Light (modificar conjunto 3bdbffb4e70a “BL0014 Otra información”). Instantáneamente Enviar() dejó de funcionar.
Para resolver el problema, intente utilizar la sobrecarga de .Register() con receiveDerivedMessagesToo establecido en verdadero.
Este problema puede ocurrir cuando Send() ing objetos que tienen algún tipo de DynamicProxy creado para ellos. Por ejemplo, EntityFramework lo hará cuando use la propiedad Local debajo de cualquiera de las colecciones de su contexto de datos.
p. Ej. ADO.NET Entity Framework para DBContext ctx.Dealers.Local generará una lista de elementos del tipo que se parecen: System.Data.Entity.DynamicProxies.Dealer_D4CEAA0F527F5360DEB9B2B35305241B76A107C37B9DB8B368984B7DF69AEE1E
Cuando juego a los oyentes Messenger.SendToTargetOrType registrados() fallará ya que la El tipo registrado es solo un "distribuidor" y no un representante del distribuidor.
¿Por qué esto solía funcionar sin requerir receiveDerivedMessagesToo establecido en verdadero y ahora no?
Anteriormente MVVM Light "Messenger.cs" Messenger.SendToTargetOrType() tenía este código:
private void SendToTargetOrType<TMessage>(TMessage message, Type messageTargetType, object token)
{
var messageType = typeof(TMessage);
Esto funcionó de maravilla ya que el tipo real de que se pasan los datos no importaba, sólo el tipo de la registed tipo.
Ahora el código se ha cambiado a:
private void SendToTargetOrType<TMessage>(TMessage message, Type messageTargetType, object token)
{
Type messageType = message.GetType();
Ahora el tipo del parámetro se está utilizando en su lugar. Esto es un problema ya que si su "mensaje" es de algún tipo de proxy, la búsqueda de oyentes registrados fallará.
¿Puede por favor enviarme una repro en laurent (at) galasoft (punto) ch, quiero investigar. ¡Gracias! – LBugnion
Estoy usando la última MVVM light 3 del instalador con Silverlight 5, y la mensajería aún funciona, por lo que debe venir de su configuración. – jv42
Lo único que vi roto fue en 'RaisePropertyChanged()', pero eso estaba documentado en el blog de @ LBugnion. – jv42