Bonjour,
Je souhaite utiliser un publish/suscriber dans ma couche métier. Ce serait donc en pur dotnet (pas à partir de la wpf où c'est facilement réalisable)
Quelqu'un aurait une idée ?
Merci d'avance
Bonjour,
Je souhaite utiliser un publish/suscriber dans ma couche métier. Ce serait donc en pur dotnet (pas à partir de la wpf où c'est facilement réalisable)
Quelqu'un aurait une idée ?
Merci d'avance
qu'est-ce que tu appelles un "publish/subscriber" ?
Une classe A (non pas la voiture , ok elle est nulle...) envoie un evenement (publish) et chaque classe qui s'est abonnée(subscribe) à cette évenement le recoit.
L'avantage par rapport au mecanisme traditionnel des évenements est que l'on a pas besoin d'une instance de la classe A pour pouvoir s'abonner à l'evenement souhaité.
il suffit de déclarer l'évènement en statique
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public static event EventHandler MonEvenement; // méthode statique protected static void OnMonEvenement(object sender) { if (MonEvenement != null) MonEvenement(sender, EventArgs.Empty); } // méthode d'instance protected void OnMonEvenement() { OnMonEvenement(this); }
Et pour savoir quel instance a levé l'évènement, il suffit de regarder le paramètre sender...
LOL cela fait des années que j'utilise les evenements et je ne me suis jamais posé la question d'ajouter un "static" devant mon event !
Merci Tom !
Le framework spring présente l'avantage d'avoir des fonctionnalités de publish subsribe intéressantes.
http://www.springframework.net/doc-l...onality-pubsub
La notion de registre est inétressante car tu peux l'implémenter sans trop biaiser ton code existant, donc avoir une approche plus composant.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager