.net - objects - tecnologia component object model
¿Por qué el objeto COM no usa IDisposable? (1)
Presumiblemente, una implementación IDisposable
podría llamar a Marshal.ReleaseComObject .
Hay casos en los que llamar a Marshal.ReleaseComObject es una buena idea, por ejemplo, para que una aplicación de Office se cierre después de la automatización desde un cliente .NET .
Pero como dice la documentación para Marshal.ReleaseComObject
, no debería usarse en el caso general, y probablemente no para los objetos COM en proceso. Aquí hay una publicación de blog con información más detallada .
Por lo tanto, no habría sido una buena idea alentar a las personas a usarlo llamándolo desde una implementación IDisposable
en el RCW.
Sin embargo, lo interesante es que el método Silverlight 4 AutomationFactory.CreateObject
devuelve un objeto dinámico IDisposable
. Y las pruebas parecen mostrar que esto de hecho libera la referencia COM , aunque la documentación es un poco escasa.
¿Por qué el objeto COM no puede usar IDisposable en sus envolturas de LLR Callable Wrappers?