OVH Cloud OVH Cloud

(C# et COM) exécuter du code à la destruction d'une instance

1 réponse
Avatar
cyrille
Bonjour,

apr=E8s quelques p=E9rip=E9cies,
j'arrive dans Excel, Word et Powerpoint,
=E0 charger et =E0 instancier un objet =E9crit en C#, ceci avec la foncti=
on CreateObject().

Dans le contructeur de l'objet, j'ais mis un appel =E0 MessageBox.Show() =
pour confirmer l'appel du constructeur.
La fenetre s'affiche bien ;o)

Dans le destructeur de l'objet, j'ais fait de m=EAme mais la fenetre de M=
essageBox n'est jamais affich=E9e.
J'ais donc ajout=E9 que l'objet impl=E9mente l'interface IDisposable et l=
a m=E9thode =E0 impl=E9menter Dispose() dans laquelle=20
j'ais aussi mis un appel =E0 MessageBox.Show().

Et bien ni dans le destructeur, ni dans Dispose(), la fenetre de MessageB=
ox n'est affich=E9e.

Puis je en conclure qu'aucune de ces m=E9thodes n'est appel=E9e ?
Si tel est le cas, comme puis-je savoir que l'objet n'est plus utilis=E9 =
?


Merci pour vos lumi=E8res,
cyrille.

1 réponse

Avatar
cyrille
> Puis je en conclure qu'aucune de ces méthodes n'est appelée ?
Si tel est le cas, comme puis-je savoir que l'objet n'est plus utilisé ?



pour continuer :

dans le constructeur de la classe principale, j'instancie cette nouvelle classe.
Et bien quand je quitte l'application hôte,
le destructeur de cette seconde classe est bien appelé,
alors que le destructeur de la classe principale ne semble pas l'être . ..

cyrille