У меня есть еще одна простая (я думаю), которая меня колотит. Я написал метод в одном из моих элементов управления, который получает последнюю версию файла в CMS, учитывая его имя файла (то есть независимо от того, в какой папке находится файл). Я счел это достаточно полезным, и мне показалось, что я его забросил в свой класс CMSToolbox, но когда я это сделаю, я больше не могу использовать метод класса FileManager Where()
, предоставляемый CMS (который возвращает список).C# Новичок: Где мой метод IList.Where() ушел?
Вот упрощенный пример моего класса:
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
всегда будет предоставлять доступ к тем же методам из того места, где вы его используете.
Я опять не, ха-ха :)
Edit: Filemanager.GetGroupAll()
возвращает CMSList
, который проходит IList
Вы, сэр, являются абсолютной легендой bl ** dy! Отлично сработано! :) –