예제 #1
0
 public TValue GetValue <TValue>(IDocCommentStrategy strategy, Func <TValue> defaultValue)
 {
     if (_cache.TryGetValue(strategy.GetType().TypeHandle, out var value))
     {
         return((TValue)value);
     }
     return(defaultValue());
 }
예제 #2
0
        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);
        }
예제 #3
0
 public void SetValue <TValue>(IDocCommentStrategy strategy, TValue value) =>
 _cache[strategy.GetType().TypeHandle] = value;