Est-ce une classe wrapper appeler un composant COM C # doivent mettre en œuvre le modèle Dispose?

StackOverflow https://stackoverflow.com/questions/1559227

  •  21-09-2019
  •  | 
  •  

Question

J'ai une classe écrite en C # qui agit comme une enveloppe autour d'un composant COM. Le composant COM est lié au début et la BRF a été générée par Visual Studio. Dois-je mettre en œuvre un modèle dans ma classe Éliminez d'emballage pour nettoyer la référence COM, ou devrais-je laisser la GC manipuler, comme il l'a déjà RCW?

Était-ce utile?

La solution

Il y a rarement un besoin pour mettre en œuvre Éliminez mais il y a souvent de bonnes raisons de le faire.

Si l'objet COM représente une ressource importante qui doit être libéré rapidement alors qui pourrait être une bonne raison de mettre en œuvre Dispose.

Dans la méthode Éliminez vous pouvez faire: -

 System.Runtime.InteropServices.Marshal.ReleaseComObject(myRCW);

Par conséquent disposer votre classe va libérer immédiatement l'objet COM.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top