组合重复的分类来自同一类的不同的Lib

时间:2015-06-08 17:44:58

标签: c# asp.net

我想知道是否有人可以帮助我。

我有一个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; }
}

3 个答案:

答案 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的依赖

感谢所有帮助