Sitecore中的Children和GetChildren有什么区别?(v8.1)

Ada*_*ess 4 sitecore sitecore8

因此,查看Sitecore代码后,我注意到获得的子级的多种方法Item

// Summary:
//     Gets the children.
public ChildList GetChildren();
Run Code Online (Sandbox Code Playgroud)

// Summary:
//     Gets a list of child items.
public ChildList Children { get; }
Run Code Online (Sandbox Code Playgroud)

对它们之间的差异有什么想法吗?

也不要与重载方法混淆:

GetChildren(ChildListOptions options)
Run Code Online (Sandbox Code Playgroud)

Vla*_*giu 5

Item.GetChildren()允许参数更改功能。这种灵活性是为什么在检索ChildItem的ChildList集合时,.GetChildren()优于.Children的原因。

例如,要忽略对这些项目应用的任何安全性,请使用: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);
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 我使用Dot Peek反编译dll (2认同)