我有 3 个项目 (C#) API、BLL 和 DAL。DAL 引用 DAL,API 引用 BLL。
在我的 API 中,我需要使用所有 CRUD 函数,但我不能使用 BLL 中的函数,因为 VS 说“类型“blabla”是在未引用的程序集中定义的。您需要添加引用(DAL )" 但我不想在 API 项目中引用 DAL。有没有办法在不使用我的 DAL 项目的情况下做到这一点?
我有 3 个项目 (C#) API、BLL 和 DAL。DAL 引用 DAL,API 引用 BLL。
在我的 API 中,我需要使用所有 CRUD 函数,但我不能使用 BLL 中的函数,因为 VS 说“类型“blabla”是在未引用的程序集中定义的。您需要添加引用(DAL )" 但我不想在 API 项目中引用 DAL。有没有办法在不使用我的 DAL 项目的情况下做到这一点?
在我看来,您想要实现的是构建项目的好方法。我也在做同样的事情;只是我将在下面解释的微小差异。在 API 中不引用 DAL 可确保每次对 DAL 的调用仅通过 BLL。这是必要的,因为我想将所有数据处理逻辑放在一个地方。如果是分布式的,就很难定位问题。
我有四个项目:
这是一种方式参考链。DAL => BLL => API
. 不应该存在倒序的引用。Utils
应该是常见的东西,像实体声明、异常、枚举等常见的东西应该去。
注意:即使您没有在 API 中引用 DAL,您也必须部署它。
为了避免Utils
在 API 中使用,您可能需要再添加一层 DTO 并将它们与实体映射。请参阅我的另一个问题。