2015-06-08 47 views
1

我想知道如果有人可以幫助我。組合重複類從不同的類是相同的類庫

我有一個n層應用程序,每層都是一個類庫。 DAL - > BLL - > PL 數據訪問層 - >業務邏輯層 - >表示層

在我的PL我需要從DAL引用我的包裝類的「貨主」不過,我想刪除的依賴我DAL並讓它穿過我的BLL。這迫使我在我的BLL中有一個重複的託運人班。

但是我如何鏈接兩個不同的Lib中的兩個相同的類? 我也不知道複製同一類的術語是什麼?

這是我付貨類

public class Shippers 
{ 

    public int ShipperID { get; set; } 
    public string CompanyName { get; set; } 
    public string Phone { get; set; } 
} 
+1

你的意思是一樣的「鏈接」兩個全幫助班?具體說明你現在所做的事情,即不「鏈接」,然後展示它是如何被「鏈接」的。 –

+0

使用全路徑sintax?有點像'new path1.class1()'和'new path2.class1()' –

+0

我希望我的表示層使用BLL中的shippers類。我希望同一個託運人類將其數據添加到DAL中的shipers類。 – user2694368

回答

0

在這種情況下,使用Composition技術並在您的BLL項目中添加包含Shippers類的庫的dll引用。 Bll類將託運人作爲成員字段並公開一個公共財產/方法,該方法返回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; 
+0

感謝金正日試試看 – user2694368

+0

您好我試了一下但其不與問候合作,我的界面,請參閱我使用的DAL.shippers在PLL沒有改變原來的解決方案 HTTPS :!//mega.co.nz/# VF8RBSgY E6fU8HFfNTKKH7VRtvFIy10xa4Cwrf6hryjcP0ylVSg – user2694368

0

你可以做的是在BLL創建一個類,並使其從DAL託運人繼承,看起來像這樣在您的BLL:

public class Shippers:DAL.Shippers 
{ 
} 
+0

OO編程中的繼承基本上意味着複製一個類的功能並且可選地添加它。 –

+0

我想讓我的表示層使用BLL中的託運人類。 我希望同一個貨主類將其數據添加到DAL中的shipers類。 – user2694368

+0

並且反之亦然,因此DAL將向BLL發送託運人List 的列表,然後將其傳遞給PLL我希望將列表轉換爲使用BLL.Shippers。 基本上它的BLL取數據DAL。託運人將其添加到BLL.SHippers中,然後將其傳遞給PLL。然後如果PLL正在以BLL.Shippers的形式發送數據,該數據應該被轉換爲DAL.SHippers。 目前PLL使用DAL.Shippers – user2694368

0

所以最後我找到了解決辦法是使中央IIb類控股託運人類。然後我用這個作爲所有的PLL和DAL和BL的參考,這將來自PLL刪除依賴於我的DAL

感謝