2
使用依賴注入時,哪個模塊持有接口?我的webapi項目仍然依賴於數據訪問層嗎?
例如,如果我有一個webapi服務項目和一個數據訪問層項目,那麼這意味着我將IUnitOfWork,IRepository等的定義放在webapi項目中,並將實現這些的UnitOfWork,Repository等類數據訪問項目中的接口?其次,如果我使用的NinjectConfigurator類包含我所有的綁定,並將其放置在我的webapi項目中,以便它在啓動時初始化,這並不意味着我的webapi項目現在依賴於數據訪問層,因爲綁定函數必須知道在數據訪問層中定義的類型?
例如。
private void AddBindings(IKernel container) {
container.Bind<myDbContext>().ToSelf().InRequestScope();
container.Bind<IUnitOfWork<myDbContext>>().To<UnitOfWork<myDbContext>>();
container.Bind<IUserRepository>().To<UserRepository>();
}
Ninject需要將接口映射到實現。我正在使用Ninject在我的webapi項目中執行依賴注入。由於Ninject需要在使用前進行配置,並且AddBindings函數位於我的webapi項目中,這並不意味着我的webapi項目依賴(或瞭解)所有映射到這些接口的具體實現?如果是這樣,我們還沒有解決任何問題。如果UnitOfWork發生變化,我仍然需要重新編譯我的webapi。 – Legion