1

クラスの命名規則に基づいて、インターフェイスのタイプを具体的なタイプに自動的にバインドするように Ninject を構成することは可能ですか? Ninject バージョン 3 を使用しています。

たとえば、ITypeRepository という名前のドメイン層に多くのリポジトリがあり、インフラストラクチャ層に ProviderTypeRepository として実装されています。

以下は、現在これらを Ninject の CreateKernal メソッドにバインドする方法の例です。

kernel.Bind<IClientRepository>().To<ProviderClientRepository>();
kernel.Bind<IVacancyRepository>().To<ProviderVacancyRepository>();
kernel.Bind<ICandidateRepository>().To<ProviderCandidateRepository>();
...etc etc

私が望むのは、新しいリポジトリを追加するたびに手動でバインドする必要がないように、何らかの方法でこれを 1 つのパスにマップすることです。

4

1 に答える 1

1

次のようなことができるNinject Conventions Extensionを探しています。

kernel.Bind(x => x
    .FromThisAssembly()
    .SelectAllClasses().EndingWith("MySuffix")
    .BindAllInterfaces();
于 2013-06-29T17:06:16.703 に答える