我刚开始进行 DI 和单元测试,遇到了一个障碍,我相信这对于那些更有经验的开发人员来说是不费吹灰之力的:
我有一个名为 MessageManager 的类,它接收数据并将其保存到数据库中。在同一个程序集(Visual Studio 中的项目)中,我创建了一个存储库接口,其中包含访问数据库所需的所有方法。该接口的具体实现在一个名为 DataAccess 的单独程序集中。
因此 DataAccess 需要对 MessageManager 的项目引用才能了解存储库接口。而MessageManager 需要对DataAccess 的项目引用,以便MessageManager 的客户端可以注入repository 接口的具体实现。这当然是不允许的
我可以将接口移动到数据访问程序集中,但我相信存储库接口应该与使用它的客户端位于同一个程序集中
那么我做错了什么?