Bonjour,
comment faut-il faire pour être notifié par un évenement de la création d'une instance de classe, de sa suppression, de la modification de la valeur d'une de ses variables membres, etc... ?
D'avance merci
Bonjour,
comment faut-il faire pour être notifié par un évenement de la création d'une instance de classe, de sa suppression, de la modification de la valeur d'une de ses variables membres, etc... ?
D'avance merci
ZTAB (Ze Text Adventure Builder)
Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.
http://sites.google.com/site/ztabsoft/
C'est le design pattern Observer qu'il te faut implémenter.
http://dofactory.com/Patterns/PatternObserver.aspx
Il y a toujours au moins deux solutions à un problème.
http://software-design-development.blogspot.com/
Hum... Alors en fait je ne souhaite pas du tout modifier quoique ce soit dans les classes en question, imagine que je ne les connaisse pas à l'avance et qu'elle proviennent d'une librairies externes dont je n'ai pas le code source.
Je veut juste pouvoir être notifié en temps réel de leur création/suppression/modification des valeurs. Je suppose que je dois me baser sur de la réflexion, mais je ne sais pas comment faire.
ZTAB (Ze Text Adventure Builder)
Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.
http://sites.google.com/site/ztabsoft/
Si tu ne souhaite pas modifier tes classes, il va te falloir développer des wrappers (enveloppes) autour d'elles, qui présenteront le même contrat (soit implémentation de la même interface, soit dérivation et surcharge), et qui implémenteront les mécanismes de notification et délègueront ensuite à une instance de la classe donnée.
Pour que ce soit transparent pour l'utilisateur, l'idéal est que ce soit une factory qui soit responsable de la création des instances, ce qui te permet de masquer au code utilisant les classes de base la présence de cette couche de notification (et pourquoi pas de configurer si tu souhaites sa présence ou pas).
Note que pour la création et la modification de valeurs ça se fera très bien, mais pour la suppression, tu ne pourras pas être assuré d'une notification a priori.
A lire : Les règles du forum
Ca ca va bien, quand c'est toi qui instancie, mais si tu supposes que ca s'instancie tout seul à des moments que tu ne maitrises pas. Faut savoir quand ca a été instancié pour pouvoir créer le wrapper qui pointe dessus. d'ou le besoin d'être notifié de l'instanciation de l'objet d'origine.
Mais y'a pas quelques choses avec System.diagnostic ou un truc dans le genre qui permettrait de faire ca ?
J'ai vu des softs qui peuvent dessiner un diagramme de séquence rien qu'en analysant le comportement d'un programme .net au runtime, doit forcément moyen de le faire par réflexion... non ?
ZTAB (Ze Text Adventure Builder)
Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.
http://sites.google.com/site/ztabsoft/
Oui, tout à fait, mais là tu ne joues pas dans la même cour.
Il te faut jeter un oeil à l'API Profiling : http://msdn2.microsoft.com/en-us/library/ms233146.aspx
Note que je ne l'ai jamais utilisée pour ma part, donc je ne peux pas t'aider plus que via ce pointeur.
A lire : Les règles du forum
Arf, oui on est bien bas là ...
Y'a vraiment rien dans System.diagnostic ?
ZTAB (Ze Text Adventure Builder)
Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.
http://sites.google.com/site/ztabsoft/
A lire : Les règles du forum
Y'a quand même un truc que tu ne nous a pas expliqué correctement.
Comment ton système est-il organisé, et comment est-tu connecté à ce composant qui crée les classes dont tu parles ?
A mon avis, ton problème n'est pas un problème de développement mais un problème d'architecture.
Il y a toujours au moins deux solutions à un problème.
http://software-design-development.blogspot.com/
Il y a modèle de données + son contrôleur qui sert au runtime, le tout dans une libriairie tierce sur laquelle je n'ai pas la main.
Je dois créer un éditeur au dessus de ça, ce que je fais via des bindingSources. L'éditeur doit afficher et modifier les données, même au court du runtime. Or, si ce qui est créé par l'éditeur via les binding source, se retrouve bien dans le runtime, la réciproque n'est pas vraie.
C'est un problème d'architecture au sens ou les modèles fournissent en général l'API de notification correspondant aux Creation, Update et Destroy, là non. Mais je ne peux pas agir dessus, donc il me faut observer sans être intrusif.
ZTAB (Ze Text Adventure Builder)
Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.
http://sites.google.com/site/ztabsoft/
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