У меня есть еще один простой (я думаю), который ставит меня в тупик. Я написал метод в одном из своих элементов управления, который получает последнюю версию файла в CMS, учитывая его имя файла (т.е. независимо от того, в какой папке находится файл). Мне это показалось достаточно полезным, и я подумал, что я могу изменить его в своем классе CMSToolbox, но когда я это делаю, я больше не могу использовать метод Where()
класса FileManager, предоставляемый CMS (который возвращает список). *
Вот упрощенный пример моего класса:
using System;
using System.Collections.Generic;
using CMS.CMS;
using CMS.Core;
using CMS.Web;
namespace CoA.CMS {
public class ToolBox
{
public CMS.CMS.File getLatestFileVersionByFilename(string filename, int GroupID)
{
IList<CMS.CMS.File> fileWithName = FileManager.GetGroupAll(false, GroupID).Where(file => currentFileVersionIsNamed(file, filename)).ToList<CMS.CMS.File>();
return getLatestFileFromListOfFiles(fileWithName);
}
protected bool currentFileVersionIsNamed(CMS.CMS.File file, string name)
{
}
protected CMS.CMS.File getLatestFileFromListOfFiles(CMS.CMS.File file)
{
}
}
}
Когда я делаю то же самое в контексте элемента управления (на самом деле это класс, предоставляемый CMS, который расширяет Control
), я имею доступ к методу Where()
, но в моем классе ToolBox я этого не делаю. Что дает? Я полагал, что IList
всегда будет разрешать доступ к одним и тем же методам, где бы вы их не использовали.
Я снова ошибаюсь, ха-ха:)
Редактировать: Filemanager.GetGroupAll()
возвращает CMSList
, который расширяет IList