2017-10-11 9 views
1

私はクライアントアプリケーション用のAPIをモデリングしています。これの一部として、クロールする際にAPIの構造/マップを維持するキャッシュを構築しようとしています(このAPIをクロールする必要があります:プロパティを介してサブオブジェクトを公開する

私がしたいことこのようなモデルオブジェクトを構築します:

page1 
    | 
    |__page2 
     | 
     |_page3 

ので、各ページにはオブジェクトがあり、各オブジェクトは、その後、私はすべてのように見えるのクラスの繰り返しセットすることができ、子供のためのプロパティが含まれている場合:

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

だからpage1.Child = page2,page2.Child cache.CurrentPage = page1.Child.Child

I'LL:私は同じように私currentPageに変数をロードするのであれば

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

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

:私は私のような現在のページを公開したいのですが、キャッシュを構築する私のクラスで= page3

子の値型コピーを取得します。だから私は元のオブジェクトを代わりに操作できるように、代わりにそのメンバーを公開します。ここでのアイデアは、私がキャッシュ内のどこにいるかを実際に知らなくても、キャッシュの現在のページで作業することができないことです。

+2

「ページ」が値型であると思われるのはなぜですか? – Servy

+0

矛盾した 'Page' /' page'問題があるようです。 – 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); 
    } 
関連する問題