通过Sitecore代码,我注意到了多种方法来获取Item
的孩子。
// Summary:
// Gets the children.
public ChildList GetChildren();
和
// Summary:
// Gets a list of child items.
public ChildList Children { get; }
对它们之间的差异有何看法?
也不要与重载方法混淆:
GetChildren(ChildListOptions options)
答案 0 :(得分:4)
Item.GetChildren()允许参数改变功能。这种灵活性是.GetChildren()优先于.Children检索子项的ChildList集合的原因。
例如,要忽略对这些项应用的任何安全性,请使用:item.GetChildren(Sitecore.Collections.ChildListOptions.IgnoreSecurity)
以上是这三个方法/属性的代码
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);
}
}
答案 1 :(得分:2)
他们之间没有区别
他们都使用public static void main(String[] args)
选项在后面调用ItemManager.GetChildren();
。
他们都返回ChildListOptions.None
对象作为回报。