J'écris une classe excel et je veux libérer cet objet non géré automatiquement. J'utilise un pattern IDisposable et j'écris des méthodes Dispose. Exemple;Comment libérer l'objet excel avec l'interface IDisposeable
class MSExcel : IDisposable
{
ApplicationClass excel;
bool disposed;
public MSExcel()
{
disposed = false;
excel = new ApplicationClass();
}
public void Dispose(bool disposing)
{
if (!this.disposed)
{
if (disposing)
{
}
excel.Quit();
disposed = true;
}
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
~MSExcel()
{
Dispose(false);
}
}
Mais j'ai une erreur classique sur exc.Quit(). "objet COM qui a été séparé de son RCW sous-jacent". Vous avez une erreur dans le code?
"Jeter" est conçu pour libérer des objets, mais vous l'utilisez pour la logique de l'application, à savoir quitter Excel. Déplacez votre méthode de quitter ailleurs et ne comptez pas sur Dispose pour quitter Excel pour vous, vous devriez le faire vous-même. –