Guten Abend,
ich möchte in meinem aktuellen Projekt eine Exceldatei auslesen, was auch alles klappt. Die Interaktion mit Excel habe ich in eine eigene Klasse gapackt, die IDisposable implementiert. Im Destruktor der Klasse rufe ich dann auch Dispose() auf. In Dispose() soll dann Excel wieder geschlossen werden.
Quelltext
1: 2: 3:
| Ein Ausnahmefehler des Typs "System.Runtime.InteropServices.InvalidComObjectException" ist in Test.exe aufgetreten.
Zusätzliche Informationen: Ein COM-Objekt, das vom zugrunde liegenden RCW getrennt wurde, kann nicht verwendet werden. |
Dieser Fehler tritt in der ersten Zeile der Dispose-Methode auf.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Excel.Application app;
public void Dispose() { app.Workbooks.Close(); app.Quit();
Marshal.FinalReleaseComObject(worksheet); Marshal.FinalReleaseComObject(app); } |
Ich verändere weder das Dokument, noch wird eine Arbeitsmappe oder gar die Excel-Instanz geschlossen.
Weiß jemand warum ich Excel nicht schließen kann? Es klappt dabei auch kein anderer Zugriff auf
app und somit kann ich auch keine Eigenschaften der
app-Instanz mehr lesen oder schreiben!
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler