Sitecore中Children和GetChildren之间的区别是什么? (V8.1)

时间:2016-05-11 15:33:59

标签: sitecore sitecore8

通过Sitecore代码,我注意到了多种方法来获取Item的孩子。

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

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

对它们之间的差异有何看法?

也不要与重载方法混淆:

GetChildren(ChildListOptions options)

2 个答案:

答案 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对象作为回报。