tecnologia objects interfaces component .net com

.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?