私の質問は、ここに投稿された古い質問の繰り返しです: Ninject 2.2 multiple bindings
誰かが2011年にこれに対処しようとしていたようです.Ninjectでそのような警告をオフにする方法があるかどうか誰か知っていますか? または他の回避策はありますか?
編集
@BatteryBackupUnitへの対応として、ここに私の正確な問題があります:
私は複数のライブラリを持っています...そして私のコアライブラリでは、次のようなことをしています:
- ホスト アプリケーション (ホストを含む) によって参照されるすべてのアセンブリを検索します。
IDependency
これらすべてのアセンブリから継承するすべての型を検索します。- それらすべてをトランジェントとして自動的に登録します
次に、別のライブラリ(ホストアプリによって参照される場合とされない場合があります)から、これがあります:
Kernel.Bind<IDbContextFactory>().To<DbContextFactory>().InSingletonScope();
ここIDbContextFactory
にも があるIDependency
ため、コア ライブラリによって既に読み込まれているため、ここに登録しますが、スコープは異なります (シングルトン)。
経験から (そして以前にテストしたことから)、Autofac ではこれが問題ではないことはわかっていますが、Ninject では既に登録されているというエラー メッセージが表示されます。
理想的には、以前の登録を上書きする方が良いでしょう...「カスケードスタイル」(より良いフレーズがないため)..