Если я правильно читаю, то Func cacheExpiration принимает экземпляр CacheExpiration и возвращает TimeSpan. Итак, я мог видеть тело Фу, являющееся:
TimeSpan ts = cacheExpiration.SlidingExpiration(TimeSpan.FromSeconds(50));
//or
TimeSpan ts2 = cacheExpiration.AbsoluteExpiration(TimeSpan.FromSeconds(50));
Это не совпадает с лямдой в вашем примере, поэтому я предполагаю, что вы действительно хотите, чтобы cacheExpiration был Func, который принимает Timespan и возвращает TimeSpan. Но это не сработает для метода RefreshCache, так как он принимает MetaObject и возвращает логическое значение.