我正试图围绕 IoC 容器。当我深入研究这种设计模式时,我遇到了许多抽象层、接口和具体类,而之前我只是实例化一个数据上下文类,使用它然后处理它。
虽然我很想继续前进,但仍有一些悬而未决的问题我不知道如何解决,希望得到一些澄清和指导。
在具有 2 个项目(包含 ef 的 mvc web 和数据层)的通用 Web 应用程序中,如果我们的依赖解析器需要一个实现特定接口的存储库(允许我们将来随时切换存储库),那么这个接口在哪里定义?我看不到它是如何在 mvc web 项目中定义的,因为这样数据访问层将依赖于它,并且它不能驻留在数据访问层中,因为 mvc 项目依赖于 dal,我错过了整点这个练习的。那么在两个项目中定义它并让每个项目引用自己的副本的答案是什么?..这甚至可能吗?还是我需要创建第三个服务层项目并在其中粘贴一个接口声明并让两个项目都引用它?
我看过很多文章谈论 Unity IoC 的接口,例如 IProductRepository、IClientRepository 和 IProductService、IClientService(这是我在开头段落中提到的)。假设这些实例中的每一个都应该引用我的数据库中的一个表,我是否正确?如果是这样,如果我有 50 张桌子会发生什么?我是否需要创建 50 个存储库接口和 50 个与表相关的接口来解耦所有内容?以及将 EF 与 POCO 类一起使用会如何影响事物?我需要让每个 POCO 实现自己指定的接口吗?
谢谢