IDisposable und COM

M

Matthias Pieroth

Hallo NG,

ich habe mal eine Frage zum IDisposable-Pattern und COM. Wir haben eine
MFC-Anwendung in die wir .NET integrieren (COM Interop, .NET 1.1). Es gibt
eine API in COM, von der wir aus der TypeLib den .NET Wrapper (RCW)
generieren. In .NET kapseln wir die RCW-Objekte an einigen Stellen in
..NET-Klassen, das heißt Klassen aus der Interop-Schicht sind member von
reinen .NET-Klassen. Beispiel:

class MyObject : IDisposable
{
private IMyCOMObject _myCOMObject;

public MyObject()
{
_myCOMObject = new MyCOMObject();
}
public int MyMethod()
{
// eigene Logik auf _myCOMObject
return _myCOMObject.MyMethod();
}

public void Dispose()
{
Marshal.ReleaseComObject( _myCOMObject );
}

}

Nun die Frage: Muss ich das Dispose selbst aufrufen oder macht das .NET für
mich? Wir haben nämlich das Problem dass die Applikation (MFC exe) im
Speicher bleibt, also COM-seitig AddRefs zuviel ausgeführt wurden.

Hat jemand da Ahnung, ein Pattern oder wie geht man da auf sicherem Wege
vor?

Gruß,
 
D

Dustin Campbell

Hello,

You might get more replies in the German-speaking C# newsgroup:

microsoft.public.de.german.entwickler.dotnet.csharp

Best Regards,
Dustin Campbell
Developer Express Inc.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top