5

我正在重写一个 .NET 后端应用程序,以便它使用 Tridion 2011 CoreService。有一部分它会在 Tridion 中获得一个使用特定关键字的文件夹。在当前设置中,这是通过在关键字本身上调用方法“GetListClassifiedItems”来完成的,但是我想如何使用 CoreService 来做到这一点?

CoreService API 中有一个ClassifiedItemsFilterData可用,但我该如何使用它呢?

我试过这段代码:

ClassifiedItemsFilterData filter = new ClassifiedItemsFilterData()
{
    ItemTypes = new ItemType[] { ItemType.Folder }
};

XElement list = client.GetListXml("tcm:113-363331-1024", filter);

但它只会返回关键字本身,URI tcm:113-363331-1024,而不是已经用它分类的文件夹。

如果我也将组件 ItemType 添加到过滤器中,我将获得所有已使用 this 关键字分类的组件,但仍然不是该文件夹

我也如何获得文件夹?

4

1 回答 1

5

当我运行类似的测试时,我的结果中确实同时得到了文件夹和组件

var filter = new ClassifiedItemsFilterData();
filter.ItemTypes = new ItemType[] {ItemType.Folder};
var transactions = client.GetListXml("tcm:1-134-1024", filter);
Console.WriteLine(transactions.ToString());

我将关键字字段添加到元数据模式并将其与文件夹相关联。是不是和你做的一样?

当我从上面的代码中删除项目类型过滤器时,我会根据该关键字获得所有组件和文件夹,但我没有获得关键字本身。这些正是我期望的ClassifiedItemsFilterData工作方式,所以我们真的应该关注你的场景中的不同之处。

于 2012-07-23T13:25:04.293 回答