[C#] Problème d'instanciation de classes et usage de la class Debug

Problème d'instanciation de classes et usage de la class Debug [C#] - C#/.NET managed - Programmation

Marsh Posté le 30-08-2005 à 19:55:58    

Bonjour, j'ai déjà posté mon problème à cet endroit :
 
http://forum.hardware.fr/forum2.ph [...] 1#t1187407
 
Mais vu que ce n'étais plus du tout le même sujet qu'à l'origine, je me permet de poster un second topic.
 
Alors, en résumé...
 
J'ai créé une class qui possède une gestion d'exceptions.
J'ai créé une seconde class destinée à tester cette dernière, en vérifiant que les exceptions attentues sont bien lancées lors des erreurs attendues. Cette class utilise l'objet Debug afin de tracer ce qu'elle fait.
Dans le Main de mon application, j'instancie ma class de debug, et je lance les tests.
 
Et là... ça fait n'importe quoi !
 
Ma class s'instancie deux fois en // (pourtant, comme vous le voyez dans mon code, je ne l'appelle qu'une fois), puis les tests aussi tournent en //.
Pire ! Ils semblent partager les mêmes variables durant les tests, puisqu'au final, alors que je fais le troisième test, j'obtiens une erreur qui ne peut se produire qu'avec le jeu de données du second test ! (qui est en cours à ce moment sur la seconde instance).
 
Bref, c'est quoi ce bordel ?
Je me souviens en effet avoir lu quelquechose à propos des contructeurs éxécutés deux fois, je ne sais plus trop dans quelles conditions... mais ça ne parlait de toute façon que du constructeur, en aucun cas des méthodes, alors que moi, c'est bien aussi mes méthodes qui s'éxécutent plusieurs fois ! (et surtout, en // avec le même espace mémoire, j'insiste sur ce point)
 
J'utilise le SDK 1.1 SPjesaispluscombien avec Visual Studio 2003
 
Merci de m'aider à trouver ce qu'il se passe, parceque là, je n'y comprend rien du tout !

Reply

Marsh Posté le 30-08-2005 à 19:55:58   

Reply

Marsh Posté le 30-08-2005 à 20:59:37    

Arjuna a écrit :


Ma class s'instancie deux fois en // (pourtant, comme vous le voyez dans mon code, je ne l'appelle qu'une fois), puis les tests aussi tournent en //.
Pire ! Ils semblent partager les mêmes variables durant les tests, puisqu'au final, alors que je fais le troisième test, j'obtiens une erreur qui ne peut se produire qu'avec le jeu de données du second test ! (qui est en cours à ce moment sur la seconde instance).
!


J'aurais tendance a penser que c'est plutot un doublage de l'info de debug plutot que un double passage dans le constructeur.
De toute maniere la facon la plus simple d'etre sur c'est de placer un point d'arret dans le constructeur et de lancer en debug tu sera fixer en deux minutes.
C'est un apli console ou winform?

Reply

Marsh Posté le 30-08-2005 à 21:58:34    

Appli Winform

Reply

Marsh Posté le 30-08-2005 à 21:59:47    

Le souci des points d'arrêts, c'est que par expérience, si l'éxécution d'un bout de code résulte d'un évènement, il ne s'arrête pas au point d'arrêt... Donc si c'est une connerie interne (genre un oninitialize, je suis comme un con)

Reply

Marsh Posté le 30-08-2005 à 22:02:27    

En effet, si je met des messagebox, y'a qu'un jeu d'éxécution à la fois.
 
Etrange... Comment corriger cette connerie dans le debug ? Parceque du coup, il est inutilisable !

Reply

Marsh Posté le 30-08-2005 à 22:03:33    

T'ain, j'y crois pas !
 
C'est cette ligne qui fout la merde :

Code :
  1. Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));


 
C'est pourtant tiré d'un exemple de la doc :o

Reply

Marsh Posté le 30-08-2005 à 22:09:41    

Bon, du coup j'ai trouvé mon erreur, c'était un problème dans le .UnLinkNode()

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed