さまざまな数と型のパラメーターを持つデリゲート メソッドを別のメソッドに渡す必要があります。私の希望は、呼び出し内のパラメーターの値を検査できることです。
これは私の汎用キャッシュ クラスです。
public T Get<T>(Expression<Func<T>> getItemCallback) where T : class
{
T item = HttpRuntime.Cache.Get(hashRepresentationOfValues) as T;
if (item == null)
{
item = getItemCallback.Compile()();
HttpRuntime.Cache.Insert(
hashRepresentationOfValues,
item,
null,
DateTime.Now.AddMinutes(5),
TimeSpan.Zero);
}
return item;
}
私の呼び出しは次のようになります。
private DataContext db;
return cache.Get<List<SomeDBObject>>(
() => db.SomeDBObjectCall(param1, param2, param3));
ご覧のとおり、キャッシュ キーとして使用できるデリゲート呼び出しの値を動的に決定できれば、非常に役立ちます。