如何在给定具有核心服务的结构组TCM URI的情况下获取所有子结构组?
我尝试使用此代码:
ItemsFilterData sgFilter = new RepositoryItemsFilterData
{ ItemTypes = new[] { ItemType.StructureGroup },
Recursive = true,
BaseColumns = ListBaseColumns.Id };
XElement listXml;
using (CoreServiceClient client = _coreServiceProvider.GetCoreServiceClient())
{
listXml = XElement.Parse(
client.ProxyClient.GetListXml(structureGroupUri, sgFilter)
.OuterXml);
}
但是我收到错误消息“意外的项目类型:StructureGroup”。
答案 0 :(得分:6)
从出版物的URI开始,这有效:
client.GetListXml("tcm:0-10-1", new RepositoryItemsFilterData {
ItemTypes = new[] { ItemType.StructureGroup },
Recursive = true,
BaseColumns = ListBaseColumns.Id
})
诀窍始终是找到正确的过滤器类型,在本例中为RepositoryItemsFilterData
。
从结构组的URI开始,这将返回直接子结构组。请注意,此处似乎忽略了Recursive = true
。
client.GetListXml("tcm:10-328-4", new OrganizationalItemItemsFilterData {
ItemTypes = new[] { ItemType.StructureGroup },
Recursive = true,
BaseColumns = ListBaseColumns.Id
})