protected object GetFromCache(string name, GetValueHandler getValue) { object obj; if (_cache.TryGetValue(name, out obj)) { return obj; } if (getValue != null) { obj = getValue.Invoke(); _cache[name] = obj; } return obj; }