0

標準の3層アプリを作成しています。

1フロントエンド用のコンソールアプリ

2ビジネスロジック層

3データレイヤー

主な目的は、データベーステーブルの顧客データを表示することです。

コンソールからデータ層への参照がなく、ビジネス層からデータ層への参照もないことで、「.NETの依存性注入」という本のガイドラインに従おうとしています。必要に応じて、フロントエンドとデータレイヤーを簡単に交換できます。

CustomerServiceというビジネスレイヤーにサービスがあり、GetCustomers()メソッドがあるとします。

のコンストラクターはCustomerService次のICustomerRepositoryようになります

 public class CustomerService 
 {
     ICustomerRepository repository; 

     public CustomerService(ICustomerRepository repository) 
     {
        this.repository = repository;
     }

     public ICollection<Customer> GetCustomers() 
     {
         return repository.GetCustomers();
     }
}

私が持っているデータレイヤーで

public class CustomerRepository : BLL.ICustomerRepository 
{
    public ICollection<Customer> GetCustomers()
    {
         // get the customers from the db 
         return customers;
    }
}

コンソールアプリで、Ninjectを使用してcreate CustomerServiceオブジェクトを呼び出し、ICustomerRepositoryの依存関係を満たします。

 class DIModule : NinjectModule
 {
    public override void Load()
    {
        Bind<>(ICustomerRepository).To<??????????????>()
    }
 }

データレイヤーのCustomerRepositoryクラスにバインドするにはどうすればよいですか?これを機能させるには、コンソールアプリからデータレイヤーへの参照を追加する必要がありますか?私は何が間違っているのですか?

4

1 に答える 1

1
Bind<ICustomerRepository>().To<CustomerRepository>();
于 2013-02-09T07:20:59.680 に答える