Я использую код C # и классы Tridion (CMS) для извлечения данных из Tridion, ниже приведен код для получения всех списков публикаций из Tridion.
protected void btnPublishPublicationList_Click(object sender, EventArgs e)
{
try
{
PublicationBL pubBL = new PublicationBL();
TridionCollection<Publication> pubAllList = pubBL.getAllPublicationList();
List<PublicationsBO> pubBos = new List<PublicationsBO>();
foreach (Publication pub in pubAllList)
{
if ((pub.Title.StartsWith("07"))||(pub.Title.StartsWith("08")))
{
PublicationsBO pubBO = new PublicationsBO();
pubBO.publicationID = pub.ID;
pubBO.publicationName = pub.Title;
pubBos.Add(pubBO);
}
}
pubBL.createPublicationListXML(pubBos);
}
catch (Exception ex)
{
log.Error(ex.Message);
}
}
В приведенном выше коде нажмите кнопку,Я использую код .net и класс Tridion, чтобы получить список всех публикаций, как показано ниже:
TridionCollection<Publication> pubAllList = pubBL.getAllPublicationList();
Я получаю список всех публикаций очень быстро из Tridion, однако, когда я собираюсь получить цикл foreach , как показано ниже, мой процесс застревает, и на это уходит много времени.
foreach (Publication pub in pubAllList)
{
if ((pub.Title.StartsWith("07"))||(pub.Title.StartsWith("08")))
{
PublicationsBO pubBO = new PublicationsBO();
pubBO.publicationID = pub.ID;
pubBO.publicationName = pub.Title;
pubBos.Add(pubBO);
}
}
После отладки я обнаружил, что когда отладчик приходит к foreach (Publication pub in pubAllList)
, он отнимает много времени.Я думаю, что для создания объекта класса Publication требуется время, и это класс Tridion.
Пожалуйста, предложите любой другой способ сделать это или подскажите, что не так в приведенном выше коде.
Спасибо.