5

出荷されたクライアントアセンブリを介してTridion2011SP1コアサービスを呼び出しています。出版物の内容を一覧表示しようとすると、例外が発生します。

コード(簡略化)は次のようになります。

ItemsFilterData filter = new Tridion.ContentManager.CoreService
                     .Client.RepositoryItemsFilterData.RepositoryItemsFilterData();
filter.ItemTypes = new ItemType[] { 
    ItemType.Folder, 
    ItemType.StructureGroup 
};
filter.Recursive = false;                        

IEnumerable<IdentifiableObjectData> childItems = core.GetList("tcm:0-15-1", filter);

注:変数「core」は、正常に呼び出すために使用できるISessionAwareCoreServiceを指します(例:core.GetSystemWideList())。

.GetListが呼び出されると、次の例外が発生します。

System.ServiceModel.FaultException`1 was unhandled
  Message=Unexpected list type: 
     Tridion.ContentManager.Data.ContentManagement.RepositoryItemsFilterData.

この問題の考えられる原因は何ですか?この種のメッセージを解釈するための良い一般的なアプローチを提案できますか?

4

1 に答える 1

11

Publicationusingの直接の子を取得することはできませんGetList。代わりに、をロードしPublicationDataclient.Readから、にアクセスする必要がRootFolderありRootStructureGroupます。

PublicationData pub = (PublicationData)core.Read("tcm:0-1-1", new ReadOptions());
string rootFolder = pub.RootFolder.IdRef;
string rootSG = pub.RootStructureGroup.IdRef;

または、で呼び出して、XMLからアイテムGetListXmlを自分で抽出することもできます。RepositoryItemsFilterData

XElement listResult = core.GetListXml(parent.ID, filter);
于 2012-05-01T13:33:26.140 に答える