public TValue GetValue <TValue>(IDocCommentStrategy strategy, Func <TValue> defaultValue) { if (_cache.TryGetValue(strategy.GetType().TypeHandle, out var value)) { return((TValue)value); } return(defaultValue()); }
public async Task <TValue> GetValue <TValue>(IDocCommentStrategy strategy, Func <Task <TValue> > defaultValue) { var th = strategy.GetType().TypeHandle; if (_cache.TryGetValue(th, out var value)) { return((TValue)value); } var newValue = await defaultValue(); _cache.Add(th, newValue); return(newValue); }
public void SetValue <TValue>(IDocCommentStrategy strategy, TValue value) => _cache[strategy.GetType().TypeHandle] = value;