using System.Collections.Generic;
public class DataControllerCacheItem
protected DateTime _timeStamp;
public DataControllerCacheItem(object item)
_timeStamp = DateTime.Now;
get { return DateTime.Now - _timeStamp; }
public class DataControllerCache
protected Dictionary<string, DataControllerCacheItem> _cache;
public DataControllerCache()
_cache = new Dictionary<string, DataControllerCacheItem>();
public List<string> Sample
return _get<List<string>>("Sample", () => new List<string>() { "pippo", "pluto", "paperino" });
protected T _get<T>(string key, Func<T> generate)
DataControllerCacheItem data;
if (_cache.TryGetValue(key, out data))
if (data.age.TotalSeconds < 5)
_cache.Add(key, new DataControllerCacheItem(ret));
public static void Main()
var c = new DataControllerCache();
Console.WriteLine("Hello World");