NinjectをIoCコンテナとして使用するプロジェクトがあります。私の懸念は、多くのクラスがそのような種類のコンストラクターを持っていることです。
[Inject]
public HomeController(
UserManager userManager, RoleManager roleManager, BlahblahManager blahblahManager) {
_userManager = userManager;
_roleManager = roleManager;
_blahblahManager = blahblahManager;
}
これらのクラスのすべてのインスタンスを一度に取得したくない場合はどうなりますか?
この方法は、このすべてのクラスがコンストラクターによってラップされLazy<T>
てコンストラクターに渡されるとき、私が必要としているものとはまったく異なります。T
インスタンスはまだ作成されていませんが、インスタンスLazy<T>
はすでにメモリに保存されています。
同僚は、ファクトリパターンを使用してすべてのインスタンス化を制御することを提案していますが、IoCにこのような大きな設計上のバグがあるかどうかはわかりません。
この状況の回避策はありますか、それともIoCの設計に本当に大きな欠陥がありますか?たぶん私は別のIoCコンテナを使うべきですか?
助言がありますか?