バックグラウンド
この質問は、Delphi Prism のアスペクト指向プログラミング用の新しいCirrusインフラストラクチャに関連しています。
現在、クラスに自動注入している側面があり、Method.SetBody関数を使用してターゲット コードを変更しようとしています。これまでのところ、 Cirrus Introductionドキュメント wikiにある Logging のサンプル コードをベースとして使用して、コードを構成しました。
質問
元の関数本体が実行されている場合と実行されていない場合の両方で、注入される関数の Result にアクセスするにはどうすればよいですか?
1 つのコード パスで OriginalBody への呼び出しをバイパスする関数の結果を設定し、もう 1 つのコード パスとして OriginalBody を呼び出し、アスペクト コードで OriginalBody の後続の結果を使用できるようにしたいと考えています。私は当初、これがAspects.RequireResultメソッドの意図された目的である可能性があると考えていましたが、これは私の場合、OriginalBody の実行を強制するように見え、コードの重複を引き起こします。