2

DataAccessプロジェクトにUnitOfWorkクラスがあり、(UnitOfWorkクラスを使用して)IUnitOfWorkインターフェイスを解決するには、Ninjectを使用してWebプロジェクトのUnitOfWorkクラスにIUnitOfWorkインターフェイスをバインドする必要があります。

これを行うには、WebプロジェクトでDataAccessプロジェクト(UnitOfWorkクラスを含む)を参照する必要があります。これは良いデザインですか?つまり、WebプロジェクトでDataAccessを参照することは悪い考えのようであり、私はそれをしませんでした。

だから、何をすべきか教えてください?

4

1 に答える 1

2

DataAccess プロジェクトへの参照に慣れていない場合 (大きな問題ではありません)、s を含む別のプロジェクト (ModuleProject と呼びましょう) を作成できますNinjectModule。ModuleProject は、DataAccess とIUnitOfWorkが定義されているプロジェクトの両方への参照を持ちます。Web プロジェクトでは、ModuleProject への参照があり、そのクラスを使用してモジュールを登録します。

モジュール

public class NinjectConfiguration : NinjectModule
{
    public override void Load()
    {
        Bind<IUnitOfWork>().To<UnitOfWork>();
    }
}

Web プロジェクトへの登録

kernel.Load(new Mod.NinjectConfiguration());

モジュールの詳細については、こちらをご覧ください。

于 2013-03-19T21:57:46.463 に答える