2016-05-11 5 views
4

Sitecoreコードを見て、私はItemの子供を得るための複数の方法に気づきました。SitecoreのChildrenとGetChildrenの違いは何ですか? (v8.1)

// Summary: 
//  Gets the children. 
public ChildList GetChildren(); 

// Summary: 
//  Gets a list of child items. 
public ChildList Children { get; } 

それらの違い上の任意の考え?彼らは両方のChildListOptions.Noneオプションで背後にItemManager.GetChildren();を呼び出す

それらの間の違いはありません

GetChildren(ChildListOptions options) 

答えて

4

Item.GetChildren()は、パラメータが機能を変更できるようにします。この柔軟性は、子アイテムのChildListコレクションを取得するために.GetChildren()が.Childrenより優先される理由です。

は、例えば、それらのアイテムに適用される任意のセキュリティを無視するように、使用:item.GetChildren(Sitecore.Collections.ChildListOptions.IgnoreSecurity)

上は、これらの3つのメソッドのコードは/プロパティである

public ChildList GetChildren() 
{ 
    return this.GetChildren(ChildListOptions.None); 
} 

public ChildList GetChildren(ChildListOptions options) 
{ 
    return Sitecore.Diagnostics.Assert.ResultNotNull<ChildList>(ItemManager.GetChildren(this, (options & ChildListOptions.IgnoreSecurity) != ChildListOptions.None ? SecurityCheck.Disable : SecurityCheck.Enable, options)); 
} 

public ChildList Children 
{ 
    get 
    { 
    return new ChildList(this); 
    } 
} 
+0

このコードはどこにありますか? Sitecoreは閉鎖されたソースです。 –

+2

私はDot Peekを使用してdllを逆コンパイルします –

+0

この製品のフードの下で何が起こっているのかを私が実際に理解できるパワーモーメントです。 –

2

はまた、オーバーロードされたメソッドと混同しないでください。

そして、彼らは返り値としてChildListオブジェクトを返します。

+1

それではなぜ両者があるのですか?インテリセンスを幸せにするには? –

+0

こんにちは、私のためではなく、Sitecoreの質問です:) –

関連する問題