一部のDIフレームワークがこれをサポートしていることは知っていますが(Ninjectなど)、Autofacで可能かどうかを具体的に知りたいと思います。
Autofacコンテナーに具象クラスを要求し、その具象クラスを登録せずに、適切なコンストラクター依存関係がすべて注入されたインスタンスを取得できるようにしたいと思います。つまり、明示的にバインドしない場合は、呼び出した場合と同じように、具象クラスをそれ自体に自動的にバインドします。builder.Register<MyClass>();
これが役立つ場合の良い例は、ViewModelsです。MVVMでは、ビューのみがViewModelに依存し、ルーズタイピングを介してレイヤー化され、ビューの単体テストは行われません。したがって、テストのためにViewModelをモックする必要はありません。したがって、各ViewModelのインターフェイスを用意する必要はありません。したがって、この場合、「このクラスに解決するためにこのインターフェースを登録する」という通常のDIパターンは、不必要な複雑さではありません。のような明示的な自己バインドbuilder.Register<MyClass>();
も、具象クラスのように単純なものを扱う場合、不要なステップのように感じます。
Autofacドキュメントのリフレクションベースの登録例を知っていますが、それも私の好みではありません。考えられるすべてのクラスを事前に登録することの複雑さ(および遅さ)は望んでいません。フレームワークが必要なときに必要なものを提供してくれるようにしたい。設定より規約など。
Autofacを設定して、「これは具体的なタイプで、まだ誰も登録していないので、デフォルト設定で登録されたように動作します」と表示されるようにする方法はありますか?