我需要将具有不同数量和类型的参数的委托方法传递给另一个方法。我希望能够检查调用中参数的值。
这是我的通用缓存类。
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));
如您所见,如果我可以动态确定委托调用的值,那将非常有帮助,因为它们可以用作缓存键。