我得到了我的DL项目抽象(对于我的DL分开了)我有一个BL(单独的程序集)..它有中间方法调用一些db层方法.但是其中一些DL方法需要返回一个类型,这个类型在我的BL中...会强制出现问题,一个循环引用.你是如何在模式方面处理这个问题的?
例如,如果我有一个假设的MyProject.DL在Car类中有以下方法:
internal List<Car> GetCars(Dealer dealer)
{
// logic
}
Run Code Online (Sandbox Code Playgroud)
和MyProject.BL需要调用该DL方法:
public List<Car> GetCars(Dealer dealer)
{
MyProject.DL.GetCars(dealer);
}
Run Code Online (Sandbox Code Playgroud)
我个人将它分开,所以我有三个组件:
我将任何共享类型放在My.Project.Types库中,只要它们不包含自己的逻辑,并且只由DL和BL库中的方法填充/操作.
例如:
在 My.Project.Types
namespace My.Project
{
public sealed class Car()
{
public int CarId { get; set; }
public string CarName { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
现在,这两个My.Project.DL和My.Project.BL将引用My.Project.Types组件,从而获得Car从那里类型.请注意,我没有将Car类命名为命名空间,My.Project.Types因为该命名空间是虚假的,有点无意义,而是我把它们留在My.Project了更有意义的地方.