2016-05-11 2 views
4

Durch den Sitecore-Code sehe ich mehrere Möglichkeiten, die Kinder eines Item zu bekommen.Was ist der Unterschied zwischen Children und GetChildren in Sitecore? (v8.1)

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

und

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

Irgendwelche Gedanken über die Unterschiede zwischen ihnen?

auch nicht mit der überladenen Methode verwechseln:

GetChildren(ChildListOptions options) 

Antwort

4

Mit Item.GetChildren() können Parameter die Funktionalität ändern. Diese Flexibilität ist der Grund, warum .GetChildren() gegenüber .Children zum Abrufen einer ChildList-Auflistung von untergeordneten Elementen bevorzugt wird.

Zum Beispiel von Wertpapieren auf diese Elemente, Verwendung angewendet zu ignorieren: item.GetChildren (Sitecore.Collections.ChildListOptions.IgnoreSecurity)

Oben ist der Code für diese drei Methoden/Immobilien

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

Woher hast du diesen Code? Sitecore ist eine geschlossene Quelle. –

+2

Ich dekompiliere dll mit Dot Peek –

+0

Ich fühle mich wie dies ist die ICH HABE DIE POWER-Momente, wo ich tatsächlich verstehen kann, was unter der Haube auf diesem Produkt vor sich geht. –

2

Es gibt keinen Unterschied zwischen ihnen ist

Beide Anruf ItemManager.GetChildren(); hinter mit ChildListOptions.None Optionen.

Und beide zurück ChildList Objekt im Gegenzug.

+1

Warum dann beides? Nur um Intellisense glücklich zu machen? –

+0

Haha, das ist eine Frage für Sitecore, nicht für mich :) –

Verwandte Themen