私は困惑している別の単純なものを持っています(私は思う)。私は自分のコントロールの 1 つに、ファイル名を指定して CMS 内のファイルの最新バージョンを取得するメソッドを作成しました (つまり、ファイルが存在するフォルダーに関係なく)。CMSToolbox クラスに入れようと思ったほど便利でしたが、これを行うとWhere()
、CMS が提供する (リストを返す) FileManager クラスのメソッドを使用できなくなります。
これが私のクラスの簡単な例です:
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)
{
}
}
}
Control (実際には を拡張する CMS によって提供されるクラス) のコンテキストでまったく同じことを行うControl
と、メソッドにアクセスできますWhere()
が、ToolBox クラスではアクセスできません。何を与える?IList
を使用すると、どこからでも同じメソッドにアクセスできるようになると考えました。
私はまた間違っています、ハハ:)
編集:拡張Filemanager.GetGroupAll()
するaを返しますCMSList
IList