ソリューションに 4 つのプロジェクトがあります
- DAL_プロジェクト
- BLL_プロジェクト
- Interface_Project
- WebApi_Project
Interface_Projectには、 ICar_DALとICar_BLLの 2 つのインターフェイスがあります。
DAL_Projectには、ICar_DALを実装するクラスCar_DALがあります。
BLL_Projectには、 ICar_BLLを実装するクラスCar_BLLがあり、そのコンストラクターはICar_DALを受け取ります
WebApi_Projectには API コントローラーCarApiControllerがあり、そのコンストラクターはICar_BLLを受け取ります
WebApi コントローラーのコンストラクターの依存関係の解決は、Bootstrapper.cs でこれを使用して Unity.WebApi によって行われます。
container.RegisterType<ICar_BLL, Car_BLL>();
私の Car_BLL がさらにコンストラクターで ICar_DAL を必要としない場合、これはうまくいきます。
それを機能させるために、次のようなことができます:
container.RegisterType<ICar_BLL, Car_BLL>();
container.RegisterType<ICar_DAL, Car_DAL>();
しかし、それは、WebApi_ProjectにDAL_Projectへの参照を追加する必要があることを意味します。これは、決してやりたくないことです。DAL_ProjectはBLL_Projectによってのみ参照されるべきです
この問題を解決するにはどうすればよいですか?