0

here で説明されているように装飾を構成する方法を理解しています。しかし、問題が 1 つあります。私の場合、リポジトリの依存関係を避けたいです。

Bind<IRepository>().To<Repository>().WhenInjectedInto<CachedRopsitory>();
Bind<IRepository>().To<CachedRepository>().WhenInjectedInto<CachedLoggedRepository>();
Bind<IRepository>().To<CachedLoggedRepository>();

詳しく説明すると、UIBL (ビジネス層)、DL (データ層) があります。UI と DL は BL を参照します。上記のコードは、UI のコンポジション ルートにあります。IRepositoryは BL にあり、Repositoryは Data レイヤーに属します。UI で DL を参照したくありません。つまり、DL を UI に依存させたくありません。したがって、このようなシナリオで使用するコードは、設定より規約を使用して次のようになります。

m_Kernel.Bind(x => x.FromAssembliesMatching("Northwind.*.dll").SelectAllClasses().
    BindAllInterfaces());

質問は簡単です。設定よりも規約で条件付きバインディングを使用するにはどうすればよいですか?

4

0 に答える 0