J'ai écrit un composant COM dans C++ non géré pour permettre aux clients d'accéder à notre base de données. Lorsque vous l'utilisez à partir d'un langage non géré, les connexions à la base de données sont correctement nettoyées lorsque les objets sont hors de portée. J'ai récemment essayé de l'utiliser à partir de VB.NET et découvert que les objets COM ne sont pas détruits. La diffusion des appels vers System.Runtime.InteropServices.Marshal.ReleaseComObject résout le problème, mais j'aimerais trouver une solution plus simple et plus sûre puisque cet objet COM est conçu pour être utilisé par le client.Comment implémenter Dispose dans un objet COM
Il semble que la bonne solution est d'avoir les objets gérés mettre en œuvre IDisposeable de sorte que le using peut être utilisé, appeler automatiquement Éliminez lorsque l'objet est plus nécessaire.
Comment procéder pour implémenter IDisposeable pour un sous-ensemble de mes objets? Plusieurs des objets qui doivent être éliminés ne sont pas co-créables mais sont renvoyés par d'autres fonctions.
peut-être ma réponse à cette question (http://stackoverflow.com/questions/158706/how-to-properly-clean-up-excel-interop -objects-in-c/158752 # 158752) aide avec votre cas spécifique. – VVS