Tutorial02 - COM Proxy Management besser steuern

In Tutorial01 haben Sie gelernt was zu beachten ist wenn Sie COM Proxies verwenden und wie Sie Dispose() nutzen um Objekte, so wie deren Kinder, freizugeben. Um das COM Proxy Management zu erleichtern und Ihren Code zur Verwaltung so klein als möglich zu halten bietet NetOffice in allen Objekten eine weitere Methode an:

void DisposeChildInstances();

Mit dieser Methode sind Sie in der Lage nur die Proxies freizugeben die über das Objekt erzeugt wurden ohne das Objekt selbst freizugeben. Betrachten Sie dazu folgendes Beispiel:

Listing 1.0

Excel.Application application = new Excel.Application(); 
foreach(Office.COMAddin addin in application.COMAddins) 
{ 
   Console.WriteLine(addin.Name); 
}
application.DisposeChildInstances();


Der erzeugte COM Proxy Baum in der grafischen Darstellung.

- application
      -COMAdins
           -Enumerator 
               - COMAddin
               - COMAddin
               - COMAddin

Im Beispielcode können Sie erkennen das wir das COMAddins Property direkt verwenden ohne es in einer lokalen Variable zu speichern. Wenn Sie nach dem durchlaufen der COMAddins Auflistung alle Proxies bis auf application freigeben wollen können Sie dies mit Dispose() nur dann erreichen wenn Sie ihre Application selbst verwerfen. Die Methode DisposeChildInstances() schafft hier die notwendige Abhilfe. Durch den Aufruf von DisposeChildInstances() des application Objekts sind nun alle COM Proxies bis auf das application Objekt selbst freigegeben. In Tutorial03 lernen Sie wie Sie Anzahl der COM Proxies innerhalb Ihrer Anwendung überwachen.

Last edited May 13, 2012 at 7:39 PM by SebastianDotNet, version 10

Comments

No comments yet.