<PackageReference Include="Polly" Version="5.2.0" />

PolicyRegistry

public class PolicyRegistry : IPolicyRegistry<string>
Stores a registry of String and Policy pair.
using System.Collections.Concurrent; using System.Collections.Generic; namespace Polly.Registry { public class PolicyRegistry : IPolicyRegistry<string> { private readonly IDictionary<string, IsPolicy> _registry = new ConcurrentDictionary<string, IsPolicy>(); public int Count => _registry.Count; public IsPolicy this[string key] { get { return _registry[key]; } set { _registry[key] = value; } } public void Add<TPolicy>(string key, TPolicy policy) where TPolicy : IsPolicy { _registry.Add(key, (IsPolicy)(object)policy); } public TPolicy Get<TPolicy>(string key) where TPolicy : IsPolicy { return (TPolicy)_registry[key]; } public bool TryGet<TPolicy>(string key, out TPolicy policy) where TPolicy : IsPolicy { IsPolicy value; bool flag = _registry.TryGetValue(key, out value); policy = (flag ? ((TPolicy)value) : default(TPolicy)); return flag; } public void Clear() { _registry.Clear(); } public bool ContainsKey(string key) { return _registry.ContainsKey(key); } public bool Remove(string key) { return _registry.Remove(key); } } }