MVVM Işık (değiştir seti 3bdbffb4e70a “BL0014 Çeşitli”) eski bir sürümüne yükseltme yaparken aynı şey benim başıma yaşadım. Anında Gönder() çalışmayı durdurdu.
Sorunu çözmek için, true olarak getDerivedMessagesToo ayarlı .Register() yüklemesini kullanarak kullanmayı deneyin.
Bu sorun, bunlar için oluşturulmuş bir tür DynamicProxy içeren nesneleri (Send) oluşturduğunda oluşabilir. Örneğin, EntityFramework, yerel özelliğinizi veri içeriğinizin koleksiyonlarından herhangi birinde kullandığınızda bunu yapar.
örn. System.Data.Entity.DynamicProxies.Dealer_D4CEAA0F527F5360DEB9B2B35305241B76A107C37B9DB8B368984B7DF69AEE1E
(Kayıtlı Dinleyiciler Messenger.SendToTargetOrType için eşleştirme) beri başarısız olur: ctx.Dealers.Local için EntityFramework DBContext benziyor tip maddelerin bir listesini oluşturacaktır Kayıtlı Tip sadece bir "Bayi" dir ve satıcının bir Proxy'si değildir.
Neden bu, getDerivedMessagesToo öğesini true olarak ayarlamaya gerek duymadan çalışmaya devam etti ve şimdi değil? veri geçirilen fiili tipi, sicil sadece tipini önemli değildi çünkü
private void SendToTargetOrType<TMessage>(TMessage message, Type messageTargetType, object token)
{
var messageType = typeof(TMessage);
Bu büyük çalıştı:
Önceden MVVM Işık "Messenger.cs" Messenger.SendToTargetOrType() bu kodu vardı yazın.
private void SendToTargetOrType<TMessage>(TMessage message, Type messageTargetType, object token)
{
Type messageType = message.GetType();
Şimdi parametrenin tipi yerine kullanılıyor:
Şimdi kod olarak değiştirildi. Bu bir sorundur, çünkü "mesajınız" bir çeşit proxy'ye sahipse, Kayıtlı dinleyicilerin araması başarısız olur.
Lütfen bana laurent (at) galasoft (dot) ch adresinden bir repro gönderiniz, araştırmak istiyorum. Teşekkürler! – LBugnion
En son MVVM ışık 3'ü yükleyiciden Silverlight 5 ile kullanıyorum ve mesajlaşma hala çalışıyor, bu yüzden kurulumunuzdan gelmesi gerekiyor. – jv42
Kırık gördüğüm görülen tek şey, "RaisePropertyChanged()" idi, ancak bu, LBugnion'un blogunda belgelendi. – jv42