通常、次のようにオーバーライドされたメソッド内から基本クラスを呼び出すことができます。
public override void Foo(Bar b)
{
base.Foo(b);
}
どうすればこれと同じ電話を振り返って行うことができますか?
編集:少し説明すると、AOPを使用して、ライブラリのエントリポイントを初期化されていない操作から保護しようとしています(私の場合、ライブラリを使用する前に「初期化」呼び出しはありません)。したがって、関連する呼び出しは技術的にはクラス内で終了しますが(AOPにより)、プリコンパイルされたコードは別のクラスで記述されます。つまり、すべてのエントリポイントに次のアドバイスを適用したいと思います。
if (!initialized)
return base.<method>(<arguments>);
リフレクションを使用してオーバーライドされたベースメソッドを呼び出すに示されているILトリックは、私にとってはうまくいくと思います。私の場合は、より正当であると感じるので、もっとクリーンなものがあることを望んでいました。