我想知道是否有人可以帮助我。
我有一个n层应用程序,每个层都是一个类lib。 DAL - > BLL - > PL 数据访问层 - >业务逻辑层 - >表示层
在我的PL中我需要从DAL引用我的包装类“Shippers”但是我想删除对我的DAL的依赖并让它通过我的BLL。这迫使我在我的BLL中有一个重复的托运人等级。
但是,如何在两个不同的Libs中链接两个相同的类? 我也不清楚复制相同类的术语是什么?
这是我的托运人班级
public class Shippers
{
public int ShipperID { get; set; }
public string CompanyName { get; set; }
public string Phone { get; set; }
}
答案 0 :(得分:0)
你可以做的是在BLL上创建一个类并让它从DAL上的Shippers继承,在你的BLL中看起来像这样:
public class Shippers:DAL.Shippers
{
}
答案 1 :(得分:0)
在这种情况下,使用Composition
技术并在BLL
项目中添加包含Shippers
类的库的dll引用。 Bll类将Shipper作为成员字段,并公开一个公共属性/方法,该公共属性/方法返回Shipper
的实例,并从PL DAL
访问该实例。如下所示:
BLL Project
public class BLL_Some_Class
{
private Shipper _shipper = new Shipper();
public Shipper getShipper
{
get{ return _shipper; }
}
}
PL DAL Project
BLL_Some_Class bll1 = new BLL_Some_Class();
bll1.getShipper;
答案 2 :(得分:0)
所以最后我找到了一个解决方案,就是让一个中心类lib保存托运人类。然后我用它作为所有PLL和DAL和BL的参考,这将从PLL中删除对我的DAL的依赖
感谢所有帮助