Tengo una clase escrita en C# que actúa como un contenedor alrededor de un componente COM. El componente COM se enlaza temprano y el RCW ha sido generado por Visual Studio. ¿Debo implementar un patrón de disposición en mi clase de contenedor para limpiar la referencia COM, o debería dejar que el GC lo maneje, ya que ya tiene un RCW?¿Una clase contenedora que llama a un componente COM a través de C# necesita implementar el patrón Dispose?
5
A
Respuesta
4
Es raro que necesite para implementar Deseche pero a menudo hay buenas razones para hacerlo.
Si el objeto COM representa un recurso importante que debe liberarse rápidamente, entonces esa podría ser una buena razón para implementar Dispose.
En su método dispose que puede hacer: -
System.Runtime.InteropServices.Marshal.ReleaseComObject(myRCW);
Por lo tanto deshacerse de la clase dará a conocer el objeto COM de inmediato.
Cuestiones relacionadas
- 1. ¿El recolector de basura llama a Dispose()?
- 2. ¿Foreach llama automáticamente a Dispose?
- 3. ¿Necesita implementar un finalizador en una clase que usa TcpClient?
- 4. ¿Ya existe una clase contenedora para una interoperabilidad COM IStream?
- 5. C#: eliminación correcta de objetos C# cuando se creó a través de COM Interop desde VB6
- 6. Visibilidad de clase COM: C# a VB6
- 7. C# - ¿Recuperar propiedades de un componente COM +?
- 8. ¿Cómo implemento el patrón de disposición en C# al envolver un objeto COM de Interop?
- 9. Propósito del patrón Dispose calling Dispose (IsDisposing) en C#?
- 10. ¿Podemos llamar a String como una clase contenedora?
- 11. evento Pass de la clase C a través de la clase B a la clase A
- 12. Devolver una clase C++ a Java a través de JNI
- 13. Estableciendo un objeto nulo frente a Dispose()
- 14. ¿Cómo puedo invocar un método estático en un objeto .NET a través de la interoperabilidad COM?
- 15. ¿Cómo declarar e implementar una interfaz COM en C# que hereda de otra interfaz COM?
- 16. ¿Es posible exponer un campo DateTime a través de COM?
- 17. ¿Cree una clase contenedora para llamar a una función pre y post sobre las funciones existentes?
- 18. ¿Cómo agrego la funcionalidad Dispose a un C# UserControl?
- 19. ¿Puedo saber el nombre de la clase que llama a un método JNI C?
- 20. Cómo UAC eleve un componente COM con .NET
- 21. C# exponer a COM - herencia de interfaces
- 22. En WXS, ¿cómo me refiero a un archivo que se instala a través de un componente diferente?
- 23. ASP MVC: ¿Cuándo se llama IController Dispose()?
- 24. Llamar a un ensamblaje x64 a través de COM desde una aplicación de 32 bits
- 25. Necesito una explicación de una clase contenedora con un ejemplo que un niño pueda entender
- 26. ¿Se necesita la clave 'Categorías Implementadas' cuando se registra un Componente COM Administrado?
- 27. Patrón de comando que conduce a explosión de clase
- 28. Llamar a una macro cada vez que se llama a un método - Objetivo C
- 29. ¿Se necesita instalar un ensamblado COM + (.net) en el GAC?
- 30. Pasando clase derivada a un método que necesita para anular esperando una clase base
Esto me hace preguntarme por qué el RCW no implementa el patrón Dispose, parece lo correcto. – vmb100