2012-05-01 27 views
5

出荷されたクライアントアセンブリを使用してTridion 2011 SP1コアサービスを呼び出す予定です。出版物の内容をリストアップしようとすると、例外が発生します。ISessionAwareCoreService.GetList()を呼び出すときに「予期しないリストタイプ」の例外が発生する

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); 

注:私は正常に呼び出すために使用できるISessionAwareCoreServiceに変数 "コア" 意味、例えばcore.GetSystemWideList()

コード(簡体字)は次のようになり.GetListが呼び出されると、次の例外が発生します。

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

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

答えて

11

Publicationの直系子をGetListで取得することはできません。代わりに、をclient.Readにロードしてから、RootFolderRootStructureGroupにアクセスしてください。

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

また、あなたのRepositoryItemsFilterDataGetListXmlを呼び出し、XML、自分から項目を抽出することができます。

XElement listResult = core.GetListXml(parent.ID, filter); 
関連する問題