IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Ajouter une fonctionnalité lors de la création/destruction d'instances


Sujet :

C#

  1. #1
    Membre régulier
    Avatar de blastobi
    Inscrit en
    Avril 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 89
    Points : 112
    Points
    112
    Par défaut Ajouter une fonctionnalité lors de la création/destruction d'instances
    Bonjour,
    Voici mon problème :

    Je possède un ensemble de classes métiers existantes. J'ai accès au code source, néanmoins celles-ci étant générées (DSL Tools pour ceux qui connaissent) je ne peux pas les modifier directement.
    L'ensemble de ces classes sont partielles, permettant donc de les enrichir dans des fichiers perso.

    J'aimerai en fait créer une propriété statique à la classe MaClasse qui serait une liste référençant l'ensemble des instances de MaClasse.
    Jusqu'à là, aucun soucis, la classe étant partielle, j'ajoute cette propriété dans mon propre fichier source.
    Là où ça se complique, c'est lorsque je souhaite automatiser l'ajout et la suppression des instances dans cette liste. Exemple simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class MaClasse
    {
       private static List<MaClasse> liste = new List<MaClasse>();
       public MaClasse()
       {
           liste.Add(this);
       }
       public ~MaClasse()
       {
           liste.Remove(this);
       }
    }
    Je comptais utiliser le constructeur/destructeur de ma classe. Or, il existe déjà un constructeur qui est utilisé dans MaClasse. Comment puis-je y insérer mon code source? Je ne crois pas qu'il soit possible de surcharger un constructeur au sein d'une même classe... Existe t'il un autre moyen?

    Pour information, je souhaite faire cela pour simuler des tables pour manipuler les objets à l'aide de LINQ.

    Merci d'avance pour votre aide!

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    Cette classe c'est toi qui l'instancie, ou bien d'autres composant que tu n'as pas écrit l'instancient aussi et tu souhaites également les traquer ?

    Dans le premier cas, tu pourrais créer une nouvelle classe qui dérive de MaClasse et tu y ajoutes le constructeur que tu veux. Dans le second cas je ne vois pas ce que tu peux faire.

  3. #3
    Membre régulier
    Avatar de blastobi
    Inscrit en
    Avril 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 89
    Points : 112
    Points
    112
    Par défaut
    Merci de ton aide.
    J'ai finalement réussi à trouver comme un grand. La solution est en fait spécifique aux DSL Tools.
    Une propriété permet de déclarer son propre constructeur à la place du constructeur généré par défaut. J'ai ainsi pu y insérer mon code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/09/2010, 11h05
  2. Réponses: 4
    Dernier message: 19/07/2009, 14h51
  3. Comment ajouter un onblur lors de la création d'un input?
    Par illeriane dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 25/06/2009, 17h40
  4. Réponses: 1
    Dernier message: 12/02/2008, 11h34
  5. Réponses: 7
    Dernier message: 11/05/2006, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo