Esta es una pregunta a continuación How to properly clean up excel interop objects in c#.Cómo limpiar correctamente los objetos de interoperabilidad en C#
El giro es que usar un encadenamiento de llamadas juntas (por ejemplo, ExcelObject.Foo.Bar()) dentro del espacio de nombres de Excel evita la recolección de elementos no utilizados para los objetos COM. En su lugar, uno debe crear explícitamente una referencia a cada objeto COM utilizado, y liberarlos explícitamente usando Marhsal.ReleaseComObject().
¿El comportamiento de no liberar objetos COM después de una llamada encadenada específica para objetos COM de Excel solamente? ¿Es excesivo aplicar este tipo de patrón cada vez que se utiliza un objeto COM?
Muy buenos puntos RE: por qué debe limpiar los objetos de interoperabilidad de la oficina –