Excel si C#

Dupa ce m-am batut cu referintele COM ( care mor imediat daca e proiect consola, dar care mai traiesc daca e ASP.NET) am reusit sa implementez IDisposable peste (aproape) fiecare obiect de la Excel.
Astfel incit am un Range_Disposable care inglobeaza / deriveaza din
Range, un WorkSheet_Disposable care inglobeaza/deriveaza din Worksheet
( si la care metoda get_Range intoarce Range_Disposable).

Observatie 1.
    In proiectul consola, daca inchid Excel ( app.Quit(); Marshal.ReleaseComObject()) si am citeva Range_Disposable la care nu am aplicat Dispose, atunci app.Quit le apeleaza si pe ele.
    In proiectul ASP.NET , daca fac acelasi lucru, app.Quit da Access Denied…

Observatia 2.
    Totul se poate repara usor , folosind binecunoscutul using(Range_Disposable r = W.get_range())

Leave a Reply

Your email address will not be published. Required fields are marked *