2017-10-11 68 views
1

我正在爲客戶端應用程序建模一個API。作爲這個我的一部分,我試圖建立一個緩存,保持API的結構/地圖,因爲它抓取它(我必須抓取這個API,它只是這樣:()通過屬性公開子對象

所以我想要做的爲建立這樣的模型對象:

page1 
    | 
    |__page2 
     | 
     |_page3 

所以,如果每個頁面都是一個對象,每個對象都包含了孩子一個屬性,然後我可以有一個重複的組類,所有看起來像:

public class Page 
{ 
    public Page Child { get; set; } 
} 

所以page1.Child = page2page2.Child = page3

在我的課,我構建的緩存我想揭露像當前頁面:

public class Cache 
{ 
    public Page CurrentPage { get; set; } 

    public Cache(){ 
     //logic to construct cache 
    } 
    // add, delete Page logic 
} 

所以,如果我加載像我的當前頁的變量: cache.CurrentPage = page1.Child.Child

我會獲取孩子的價值型副本。那麼,我該如何公開該成員,以便我可以對原始對象進行操作。這裏的想法是,我無法在緩存的當前頁面上工作,而不必知道我在緩存中的位置。

+2

爲什麼你認爲'Page'是一個值類型? – Servy

+0

你似乎在這裏有一些不一致的頁面/頁面問題。 – crashmstr

+0

@crashmstr良好的捕獲 - 修復 –

回答

0

我可以像這樣直接訪問孩子的值。

public class Page 
    { 
     public Page Child { get; set; } 
     public string PageNumber { get; set; } 
    } 
    private static void Main() 
    { 
     var page1 = new Page {PageNumber = "1"}; 
     var page2 = new Page {PageNumber = "2"}; 
     var page3 = new Page {PageNumber = "3"}; 
     page1.Child = page2; 
     page2.Child = page3; 

     var x = page1.Child.Child.PageNumber; 

     Console.WriteLine(x); 
    }