Angenommen ich nehme mir einen
System.Rtti.TVirtualMethodInterceptor für eine fiktive Klasse
TMyObject
mit u. A. einer
public procedure doStuff(); virtual;
.
Der Interceptor geht ja hin und "proxified" ja grundsätzlich erst einmal ALLE Methoden derer er habhaft werden kann. In meinen OnBefore, OnAfter und OnException-Events (soweit gesetzt) muss ich ja nun erst einmal prüfen, ob ich gerade überhaupt meine "doStuff"-Methode intercepte. Bislang ist mir nichts besseres eingefallen als ein simpler String-Vergleich wie
if (Method.Name = 'doStuff') then
.
Gibt es hier keinen besseren Weg (kein String, schnellerer Vergleich), beispielsweise irgendwelche Zeiger zu vergleichen?
Method.CodeAddress
liefert mir leider nichts was ich sonst irgendwo wiederfinde...
PS: Die Interception-Mechanismen
in z.B. Spring4D habe ich bislang nur überflogen. Kann ich dort im Vorhinein sagen dass ich nur bestimmte Methoden (z.B. mit einem Attribut) intercepten will und nicht gleich alle? Das ist doch sicher kein unnormaler Anwendungsfall. Bislang müsste ich dafür die System.Rtti.pas modifizieren.