2012-05-01 26 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

आप GetList का उपयोग कर Publication के प्रत्यक्ष बच्चों को नहीं प्राप्त कर सकते हैं। इसके बजाय आप सिर्फ एक client.Read साथ PublicationData लोड और फिर RootFolder और RootStructureGroup उस पर पहुंचना चाहिए।

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

वैकल्पिक रूप से आप अपने RepositoryItemsFilterData साथ GetListXml फोन और एक्सएमएल स्वयं से आइटम निकाल सकते हैं।

XElement listResult = core.GetListXml(parent.ID, filter); 
संबंधित मुद्दे