System.Rtti.TVirtualMethodInterceptor

提供: RAD Studio API Documentation
移動先: 案内検索

System.TObjectTVirtualMethodInterceptor

Delphi

TVirtualMethodInterceptor = class

C++

class PASCALIMPLEMENTATION TVirtualMethodInterceptor : public System::TObject

プロパティ

種類 可視性 ソース ユニット
class public
System.Rtti.pas
System.Rtti.hpp
System.Rtti System.Rtti

説明

特定のクラス型の指定されたインスタンスに対する仮想メソッド呼び出しを ユーザーが動的にインターセプトできるようにします。

TVirtualMethodInterceptor は、実行時に派生クラスを動的に作成し、上位クラスのすべての仮想メソッドをオーバーライドさせます。 そのために、新しい仮想メソッド テーブルを作成して、呼び出しをインターセプトして引数を集めるスタブをそこに追加します。 呼び出しはすべて、TVirtualMethodInterceptor クラスの次の一連のイベントを通じてリダイレクトされます: OnBeforeOnAfterOnException。これらのイベントの実装によって、以下のようなメソッド実行の進め方を制御できます。

  • 継承したメソッドを呼び出すかどうか。
  • 引数や戻り値を変更するかどうか。
  • 継承した実装で例外が発生した場合に、派生クラスの実装でそれを出力しないようにするか。

この機能は、テスト用のモック オブジェクト、リモーティング用のプロキシなど、アスペクト指向ソリューションを実装するのに役立ちます。

関連項目

コード サンプル