无需查询基础XML即可获取组件字段

时间:2012-09-27 09:33:46

标签: tridion tridion-2011

使用Core Service 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;

但是当我开始使用Core Service API时,似乎有点复杂,因为没有Tridion.ContentManager.ContentManagement.Fields.ItemFields类来包围component.Content

我理解Frank van Puffelen编写了一组classes来实现这个包装器功能,但是我对使用SDL没有正式支持的代码有点警惕(或者是吗?)。

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

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:3)

这个问题之前已被问过,实际上不止一次...... 例如:How to set content to a component without loading XML in SDL Tridion using core services?