Created
December 23, 2019 14:41
-
-
Save jjxtra/265553e364b80f4347030125c72fa8dc to your computer and use it in GitHub Desktop.
New and improved C# IDistributedCacheInterface
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// <summary> | |
/// Simplified and improved IDistributedCache interface. No more stupid byte arrays. Removal events | |
/// can also be hooked into allowing removal from a local memory cache if desired. | |
/// </summary> | |
public interface IDistributedCache | |
{ | |
/// <summary> | |
/// Fires when an item is removed by another machine, parameters are the key and the machine name | |
/// </summary> | |
event Action<DistributedCacheRemoveEventArgs>? Removed; | |
/// <summary> | |
/// Get a cache value, external caches (if any) are searched | |
/// </summary> | |
/// <typeparam name="T">Type of value</typeparam> | |
/// <param name="key">Key</param> | |
/// <param name="cancelToken">Cancel token</param> | |
/// <returns>Task of type T, T will be null if not found</returns> | |
ValueTask<T?> GetAsync<T>(string key, CancellationToken cancelToken = default) where T : class; | |
/// <summary> | |
/// Set a cache value, overwriting any existing value | |
/// </summary> | |
/// <typeparam name="T">Type of object to set</typeparam> | |
/// <param name="key">Key</param> | |
/// <param name="value">Value</param> | |
/// <param name="cacheParameters">Cache parameters or null for default</param> | |
/// <param name="cancelToken">Cancel token</param> | |
/// <returns>Task</returns> | |
ValueTask SetAsync<T>(string key, T value, CacheParameters? cacheParameters = null, CancellationToken cancelToken = default) where T : class; | |
/// <summary> | |
/// Remove an item from the cache | |
/// </summary> | |
/// <param name="key">Key</param> | |
/// <param name="cancelToken">Cancel token</param> | |
/// <returns>Task</returns> | |
ValueTask RemoveAsync(string key, CancellationToken cancelToken = default); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment