我有3个项目(C#)API,BLL和DAL。 DAL引用DAL,API引用BLL。
在我的API中,我需要使用所有CRUD函数,但我不能使用我的BLL中的函数,因为VS说"类型" blabla"在未引用的程序集中定义。您需要添加引用(DAL)"但我不想在API项目中引用DAL。有没有办法在不使用我的DAL项目的情况下完成它?
答案 0 :(得分:1)
在我看来,你想要实现的是构建项目的好方法。我也是这样做的;只是我将在下面解释的小差异。不在API中引用DAL确保每次对DAL的调用都只通过BLL。这是必要的,因为我想将我的所有数据处理逻辑放在一个地方。如果它是分发的,很难找到问题。
我有四个项目:
这是单向参考链。 DAL => BLL => API
。不应存在相反顺序的引用。 Utils
应该是常见的东西,例如实体声明,例外,枚举等。
注意:尽管您没有在API中引用DAL,但您必须部署它。
为避免在API中使用Utils
,您可能需要再添加一层DTO并使用实体进行映射。请参考我的其他question。