/// <summary> /// Removes a cache registration with a given name. /// This method is to be used during application intialization, it does not delete or replace the cache if already in use! /// </summary> /// <param name="name"></param> public static void RemoveCache(string name) { var cacheName = new CacheName(name); void Action() { // ReSharper disable once UnusedVariable caches.TryRemove(cacheName, out var oldValue); } SyncSet(cachesSync, Action); }
/// <summary> /// Adds or sets a cache by name /// This method is to be used during application initialization, it does not delete or replace the cache if already in use! /// </summary> /// <param name="name"></param> /// <param name="cache"></param> /// <remarks>Cache name can end with wildcard '*'</remarks> public void SetCache(string name, ICache cache) { var cacheName = new CacheName(name); if (cache == null) { caches.TryRemove(cacheName, out var _); } else { caches.AddOrUpdate(cacheName, cache, (k, v) => cache); } }
/// <summary> /// Adds or sets a cache by name /// This method is to be used during application intialization, it does not delete or replace the cache if already in use! /// </summary> /// <param name="name"></param> /// <param name="cache"></param> /// <remarks>Cache name can end with wildcard '*'</remarks> public static void SetCache(string name, ICache cache) { var cacheName = new CacheName(name); void Action() { if (cache == null) { // ReSharper disable once UnusedVariable caches.TryRemove(cacheName, out var oldValue); } else { caches.AddOrUpdate(cacheName, cache, (k, v) => cache); } } SyncSet(cachesSync, Action); }
/// <summary>Adds or sets a cache by name</summary> /// <remarks>Cache name can end with wildcard '*'</remarks> public static void SetCache(string name, ICache cache) { var cacheName = new CacheName(name); sync.EnterWriteLock(); try { if (cache == null) { ICache oldCache; caches.TryRemove(cacheName, out oldCache); } else { caches.AddOrUpdate(cacheName, cache, (n, c) => cache); } } finally { sync.ExitWriteLock(); } }
/// <summary> /// Removes a cache registration with a given name. /// This method is to be used during application initialization, it does not delete or replace the cache if already in use! /// </summary> /// <param name="name"></param> public void RemoveCache(string name) { var cacheName = new CacheName(name); caches.TryRemove(cacheName, out var _); }