Bonsoir à tous,

j'ai un petit soucis lors de l'utilisation d'un mediator.

J'ai une classe Plugin qui contient ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
public void Associate(String Identifiant, String Header, String Content)
        {
            Messenger.Instance.Register(Identifiant, delegate
            {
                Messenger.Instance.Notify(MediatorMessages.MainWindows_SetHeader, "pack://application:,,,/" + this.Namespace + ";component" + Header);
                Messenger.Instance.Notify(MediatorMessages.MainWindows_SetContent, "pack://application:,,,/" + this.Namespace + ";component" + Content);
            });
        }
Et une classe loader qui contient :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
public class Loader : Plugin
    {
        public Loader()
        {
            this.Namespace = "Cinema.Plugin";
            this.Associate("Add", "/Headers/HeaderAdd.xaml", "/Contents/Add.xaml");
        }
    }
Lorsque le message "Add" est emis, la méthode n'est pas appelé car il semblerait que l'objet ne soit plus en vie (qu'il ai été collecté alors qu'il ne l'est pas).

Maintenant, si je fait ceci à la place :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public class Loader : Plugin
    {
        public Loader()
        {
            this.Namespace = "Cinema.Plugin";
            Messenger.Instance.Register(Identifiant, delegate
            {
                Messenger.Instance.Notify(MediatorMessages.MainWindows_SetHeader, "pack://application:,,,/" + this.Namespace + ";component" + "/Headers/HeaderAdd.xaml");
                Messenger.Instance.Notify(MediatorMessages.MainWindows_SetContent, "pack://application:,,,/" + this.Namespace + ";component" + "/Contents/Add.xaml");
            });
        }
    }
Tout fonctionne à merveille, pouvez vous me dire quel est le problème lorsque que je met le Register dans la classe mère ?? (qui est dans une autre assembly, je sais pas si ça peut jouer).


Merci d'avance.

Cordialement,
NeoKript