System.Rtti.TVirtualMethodInterceptor

De RAD Studio API Documentation
Aller à : navigation, rechercher

System.TObjectTVirtualMethodInterceptor

Delphi

TVirtualMethodInterceptor = class

C++

class PASCALIMPLEMENTATION TVirtualMethodInterceptor : public System::TObject

Propriétés

Type Visibilité  Source Unité  Parent
class public
System.Rtti.pas
System.Rtti.hpp
System.Rtti System.Rtti

Description

Permet à l'utilisateur d'intercepter dynamiquement les appels de méthodes virtuelles sur des instances spécifiées d'un type de classe particulier.

TVirtualMethodInterceptor crée une classe dérivée dynamiquement à l'exécution qui redéfinit chaque méthode virtuelle dans l'ancêtre. Ceci est accompli en créant une nouvelle table de méthodes virtuelles et en la remplissant par des stubs qui interceptent les appels et collectent les arguments. Chaque appel est redirigé via un ensemble d'événements sur la classe TVirtualMethodInterceptor : OnBefore, OnAfter et OnException. L'implémenteur de ces événements peut contrôler comment est traitée l'exécution de la méthode :

  • Si la méthode héritée est appelée, ou pas.
  • Si les arguments ou la valeur de retour doivent être modifiés.
  • Si une exception déclenchée par l'implémentation héritée doit être supprimée dans l'implémentation dérivée.

Cette fonctionnalité peut être utilisée comme aide à l'implémentation d'objets fictifs pour les tests, de proxies pour l'accès distant, et de solutions similaires orientées aspect.

Voir aussi

Exemples de code