Est-ce une classe wrapper appeler un composant COM C # doivent mettre en œuvre le modèle Dispose?
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?
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.