ご要望に応じて、ninject を使用するソリューションを掲載しています。コンストラクターは初期化を実行していませんが、メソッドは実行しているため、私はあなたの目標から少し逸脱しました。メソッドはインターセプターによって呼び出されます。Async-Ctor は、「ターゲットのないインターフェイス プロキシ」 ( http://docs.castleproject.org/Tools.Kinds-of-proxy-objects.ashxを参照) に変更し、インターセプターにオブジェクトをインスタンス化させることで可能になる可能性が最も高いです。
また、非同期初期化はおそらくメリットよりもデメリットの方が多いと思います。たとえば、インターフェイスでの呼び出しによって初期化例外が発生する可能性があるため、初期化例外の処理が困難になります。

IFoo
にバインドされていInterceptingProxyProvider : IProvider
ます。プロバイダはFoo
、 のすべてのインターセプタをインスタンス化Foo
し、キャッスル ダイナミック プロキシ ( Proxy
) を作成して返します。これは、が注入されているCaller
ときに受け取るものです。コンストラクターでのIFoo
初期AsyncInitializationInterceptor
化を開始します。Foo
最初に傍受された呼び出しで、初期化が完了するのを待ってから続行します。初期化が例外で失敗した場合、以降のすべてのアクセスIFoo
で初期化例外がスローされます。
さらに、ninject プロキシ拡張機能は、ターゲット タイプごとにインターセプター インスタンスを作成します。ただし、必要なのは、ターゲット インスタンスごとに 1 つのインターセプター インスタンスです。これが、プロキシとインターセプターのバインディングとインスタンス化のカスタム実装を提供した理由です。
これがコードで、使用方法を示す統合テストが完了しています。