Tutorial04 - COM Proxy Management für Objekte die Ereignisse auslösen

Das COMProxy Management für Objekte die Ereignisse auslösen funktioniert in NetOffice nicht anders als das was Sie bisher kennen. Jedoch gibt es eine wichtigen Umstand über den Sie sich im klaren sein sollten um kein unbeabsichtigtes Verhalten herbeizuführen.

Betrachten Sie dazu folgenden Beispielcode:

Listing 1.0

public void SampleFunction() 
{ 
     _application.DocumentBeforeCloseEvent += 
     new Word.Application_DocumentBeforeCloseEventHandler(DocumentBeforeCloseEvent); 
} 


void DocumentBeforeCloseEvent(NetOffice.WordApi.Document Doc, ref bool Cancel) 
{ 
     Doc.Dispose();     
}

Sie können erkenen das wir im EventTrigger DocumentBeforeCloseEvent einen Document Proxy übergeben bekommen. Dieser Parameter wird im COM Proxy Baum dem Application Objekt untergordnet. Jedoch ist es empfehlenswert COM Proxy Parameter am Ende eines EventTrigger immer freizugeben. Fallweise werden Ereignisse von Office sehr oft ausgelöst und die Anzahl an COM Proxies steigt dadurch unkontrolliert. Geben Sie COM Proxy Parameter am Ende eines Event Trigger immer mittels Dispose() frei! Zusätzlich bietet Ihnen die Methoden Dispose und DisposeChildInstances eine Überladung an. Dispose(bool disposeEventBinding) und DisposeChildInstances(bool DisposeEventBinding). Sie können diese Überladung nutzen um COM Proxies freizugeben ohne das weiterleiten der Ereignisse zu stoppen.

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

Comments

No comments yet.