1

Core Service APIを使用して、基になるXMLのクエリやサードパーティ(?)ラッパークラスを使用せずにコンポーネントのフィールドを取得する方法はありますか?

TOM.NETAPIを使用する場合はかなり簡単です

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;

Tridion.ContentManager.ContentManagement.Fields.ItemFieldsしかし、Core Service APIを使い始めると、をラップするクラスがないため、少し複雑に見えますcomponent.Content

Frank van Puffelenがこのラッパー機能を実装するための一連のクラスを作成したことは理解していますが、SDLで公式にサポートされていないコードを使用することには少し警戒しています(またはそうですか?)。

現時点では、CoreServiceAPIを使用してコンポーネントからフィールドを適切に取得する機能は完全には実装されていないようです。私が間違っていることが証明されることを願っています!

4

2 に答える 2

4

ComponentDataコンテンツにアクセスするための公式ラッパーを探している場合、そのようなことはありません。

フランクのクラスは公式にはサポートされていません。オープンソースコード(MITライセンスに基づく)ですが、サポートされているAPIを使用して構築されているため、使用しても問題ありません。

一方、これはそれほど大規模なコードではないため、問題が発生した場合は、おそらく自分で解決してみることができます。あなたがページのコメントで見ることができるように、すでに他の仲間の開発者がしたように。

于 2012-09-27T11:25:33.830 に答える
3

この質問は以前に何度も実際に尋ねられました。例:コアサービスを使用してSDL TridionにXMLをロードせずにコンテンツをコンポーネントに設定するにはどうすればよいですか?

于 2012-09-27T10:22:25.793 に答える