1

使用核心服务 API,是否有任何方法可以检索组件的字段,而无需求助于查询底层 XML 或使用第三方(?)包装类?

使用 TOM.NET API 相当简单

Tridion.ContentManager.ContentManagement.Component component = [get a component];
var componentFields = new Tridion.ContentManager.ContentManagement.Fields.ItemFields(component.Content, component.Schema);
var summary = ((Tridion.ContentManager.ContentManagement.Fields.TextField)componentFields["summary"]).Value;

但是当我开始使用核心服务 API 时,它似乎有点复杂,因为没有Tridion.ContentManager.ContentManagement.Fields.ItemFields类可以围绕component.Content.

我了解 Frank van Puffelen 编写了一组来实现此包装器功能,但我对使用 SDL 未正式支持的代码(或者是吗?)有点谨慎。

目前,在我看来,使用核心服务 API 从组件中优雅地检索字段的功能尚未完全实现。我希望我会被证明是错误的!

4

2 回答 2

4

如果您正在寻找一个官方包装器来访问 ComponentData 内容,那么没有这样的东西。

Frank 的课程不受官方支持,它是开源代码(在MIT 许可下),但它是使用受支持的 API 构建的,所以你应该可以使用它。

另一方面,它不是一段如此广泛的代码,所以如果你有问题,你可以尝试自己解决它。正如其他开发人员所做的那样,您可以在页面评论中看到。

于 2012-09-27T11:25:33.830 回答
3

这个问题之前已经被问过,实际上不止一次。例如:如何在 SDL Tridion 中使用核心服务在不加载 XML 的情况下将内容设置为组件?.

于 2012-09-27T10:22:25.793 回答