Class DistributedCache<TCacheItem, TCacheKey>
Represents a distributed cache of TCacheItem
type.
Uses a generic cache key type of TCacheKey
type.
Implements
Namespace: Volo.Abp.Caching
Assembly: Volo.Abp.Caching.dll
Syntax
public class DistributedCache<TCacheItem, TCacheKey> : object, IDistributedCache<TCacheItem, TCacheKey> where TCacheItem : class
Type Parameters
Name | Description |
---|---|
TCacheItem | The type of cache item being cached. |
TCacheKey | The type of cache key being used. |
Constructors
DistributedCache(IOptions<AbpDistributedCacheOptions>, IDistributedCache, ICancellationTokenProvider, IDistributedCacheSerializer, IDistributedCacheKeyNormalizer, IHybridServiceScopeFactory, IUnitOfWorkManager)
Declaration
public DistributedCache(IOptions<AbpDistributedCacheOptions> distributedCacheOption, IDistributedCache cache, ICancellationTokenProvider cancellationTokenProvider, IDistributedCacheSerializer serializer, IDistributedCacheKeyNormalizer keyNormalizer, IHybridServiceScopeFactory serviceScopeFactory, IUnitOfWorkManager unitOfWorkManager)
Parameters
Type | Name | Description |
---|---|---|
IOptions<AbpDistributedCacheOptions> | distributedCacheOption | |
Volo.Abp.Caching.IDistributedCache | cache | |
ICancellationTokenProvider | cancellationTokenProvider | |
IDistributedCacheSerializer | serializer | |
IDistributedCacheKeyNormalizer | keyNormalizer | |
IHybridServiceScopeFactory | serviceScopeFactory | |
IUnitOfWorkManager | unitOfWorkManager |
Fields
DefaultCacheOptions
Declaration
protected DistributedCacheEntryOptions DefaultCacheOptions
Field Value
Type | Description |
---|---|
DistributedCacheEntryOptions |
UowCacheName
Declaration
public const string UowCacheName = null
Field Value
Type | Description |
---|---|
System.String |
Properties
Cache
Declaration
protected IDistributedCache Cache { get; }
Property Value
Type | Description |
---|---|
Volo.Abp.Caching.IDistributedCache |
CacheName
Declaration
protected string CacheName { get; set; }
Property Value
Type | Description |
---|---|
System.String |
CancellationTokenProvider
Declaration
protected ICancellationTokenProvider CancellationTokenProvider { get; }
Property Value
Type | Description |
---|---|
ICancellationTokenProvider |
IgnoreMultiTenancy
Declaration
protected bool IgnoreMultiTenancy { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
KeyNormalizer
Declaration
protected IDistributedCacheKeyNormalizer KeyNormalizer { get; }
Property Value
Type | Description |
---|---|
IDistributedCacheKeyNormalizer |
Logger
Declaration
public ILogger<DistributedCache<TCacheItem, TCacheKey>> Logger { get; set; }
Property Value
Type | Description |
---|---|
ILogger<DistributedCache<TCacheItem, TCacheKey>> |
Serializer
Declaration
protected IDistributedCacheSerializer Serializer { get; }
Property Value
Type | Description |
---|---|
IDistributedCacheSerializer |
ServiceScopeFactory
Declaration
protected IHybridServiceScopeFactory ServiceScopeFactory { get; }
Property Value
Type | Description |
---|---|
IHybridServiceScopeFactory |
SyncSemaphore
Declaration
protected SemaphoreSlim SyncSemaphore { get; }
Property Value
Type | Description |
---|---|
SemaphoreSlim |
UnitOfWorkManager
Declaration
protected IUnitOfWorkManager UnitOfWorkManager { get; }
Property Value
Type | Description |
---|---|
IUnitOfWorkManager |
Methods
Get(TCacheKey, Nullable<Boolean>, Boolean)
Gets a cache item with the given key. If no cache item is found for the given key then returns null.
Declaration
public virtual TCacheItem Get(TCacheKey key, bool? hideErrors = null, bool considerUow = false)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey | key | The key of cached item to be retrieved from the cache. |
System.Nullable<System.Boolean> | hideErrors | Indicates to throw or hide the exceptions for the distributed cache. |
System.Boolean | considerUow | This will store the cache in the current unit of work until the end of the current unit of work does not really affect the cache. |
Returns
Type | Description |
---|---|
TCacheItem | The cache item, or null. |
GetAsync(TCacheKey, Nullable<Boolean>, Boolean, CancellationToken)
Gets a cache item with the given key. If no cache item is found for the given key then returns null.
Declaration
public virtual Task<TCacheItem> GetAsync(TCacheKey key, bool? hideErrors = null, bool considerUow = false, CancellationToken token = null)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey | key | The key of cached item to be retrieved from the cache. |
System.Nullable<System.Boolean> | hideErrors | Indicates to throw or hide the exceptions for the distributed cache. |
System.Boolean | considerUow | This will store the cache in the current unit of work until the end of the current unit of work does not really affect the cache. |
CancellationToken | token | The System.Threading.CancellationToken for the task. |
Returns
Type | Description |
---|---|
Task<TCacheItem> | The cache item, or null. |
GetDefaultCacheEntryOptions()
Declaration
protected virtual DistributedCacheEntryOptions GetDefaultCacheEntryOptions()
Returns
Type | Description |
---|---|
DistributedCacheEntryOptions |
GetMany(IEnumerable<TCacheKey>, Nullable<Boolean>, Boolean)
Declaration
public virtual KeyValuePair<TCacheKey, TCacheItem>[] GetMany(IEnumerable<TCacheKey> keys, bool? hideErrors = null, bool considerUow = false)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<TCacheKey> | keys | |
System.Nullable<System.Boolean> | hideErrors | |
System.Boolean | considerUow |
Returns
Type | Description |
---|---|
KeyValuePair<TCacheKey, TCacheItem>[] |
GetManyAsync(IEnumerable<TCacheKey>, Nullable<Boolean>, Boolean, CancellationToken)
Declaration
public virtual Task<KeyValuePair<TCacheKey, TCacheItem>[]> GetManyAsync(IEnumerable<TCacheKey> keys, bool? hideErrors = null, bool considerUow = false, CancellationToken token = null)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<TCacheKey> | keys | |
System.Nullable<System.Boolean> | hideErrors | |
System.Boolean | considerUow | |
CancellationToken | token |
Returns
Type | Description |
---|---|
Task<KeyValuePair<TCacheKey, TCacheItem>[]> |
GetManyFallback(TCacheKey[], Nullable<Boolean>, Boolean)
Declaration
protected virtual KeyValuePair<TCacheKey, TCacheItem>[] GetManyFallback(TCacheKey[] keys, bool? hideErrors = null, bool considerUow = false)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey[] | keys | |
System.Nullable<System.Boolean> | hideErrors | |
System.Boolean | considerUow |
Returns
Type | Description |
---|---|
KeyValuePair<TCacheKey, TCacheItem>[] |
GetManyFallbackAsync(TCacheKey[], Nullable<Boolean>, Boolean, CancellationToken)
Declaration
protected virtual Task<KeyValuePair<TCacheKey, TCacheItem>[]> GetManyFallbackAsync(TCacheKey[] keys, bool? hideErrors = null, bool considerUow = false, CancellationToken token = null)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey[] | keys | |
System.Nullable<System.Boolean> | hideErrors | |
System.Boolean | considerUow | |
CancellationToken | token |
Returns
Type | Description |
---|---|
Task<KeyValuePair<TCacheKey, TCacheItem>[]> |
GetOrAdd(TCacheKey, Func<TCacheItem>, Func<DistributedCacheEntryOptions>, Nullable<Boolean>, Boolean)
Gets or Adds a cache item with the given key. If no cache item is found for the given key then adds a cache item
provided by factory
delegate and returns the provided cache item.
Declaration
public virtual TCacheItem GetOrAdd(TCacheKey key, Func<TCacheItem> factory, Func<DistributedCacheEntryOptions> optionsFactory = null, bool? hideErrors = null, bool considerUow = false)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey | key | The key of cached item to be retrieved from the cache. |
Func<TCacheItem> | factory | The factory delegate is used to provide the cache item when no cache item is found for the given |
Func<DistributedCacheEntryOptions> | optionsFactory | The cache options for the factory delegate. |
System.Nullable<System.Boolean> | hideErrors | Indicates to throw or hide the exceptions for the distributed cache. |
System.Boolean | considerUow | This will store the cache in the current unit of work until the end of the current unit of work does not really affect the cache. |
Returns
Type | Description |
---|---|
TCacheItem | The cache item. |
GetOrAddAsync(TCacheKey, Func<Task<TCacheItem>>, Func<DistributedCacheEntryOptions>, Nullable<Boolean>, Boolean, CancellationToken)
Gets or Adds a cache item with the given key. If no cache item is found for the given key then adds a cache item
provided by factory
delegate and returns the provided cache item.
Declaration
public virtual Task<TCacheItem> GetOrAddAsync(TCacheKey key, Func<Task<TCacheItem>> factory, Func<DistributedCacheEntryOptions> optionsFactory = null, bool? hideErrors = null, bool considerUow = false, CancellationToken token = null)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey | key | The key of cached item to be retrieved from the cache. |
Func<Task<TCacheItem>> | factory | The factory delegate is used to provide the cache item when no cache item is found for the given |
Func<DistributedCacheEntryOptions> | optionsFactory | The cache options for the factory delegate. |
System.Nullable<System.Boolean> | hideErrors | Indicates to throw or hide the exceptions for the distributed cache. |
System.Boolean | considerUow | This will store the cache in the current unit of work until the end of the current unit of work does not really affect the cache. |
CancellationToken | token | The System.Threading.CancellationToken for the task. |
Returns
Type | Description |
---|---|
Task<TCacheItem> | The cache item. |
GetUnitOfWorkCache()
Declaration
protected virtual Dictionary<TCacheKey, UnitOfWorkCacheItem<TCacheItem>> GetUnitOfWorkCache()
Returns
Type | Description |
---|---|
Dictionary<TCacheKey, UnitOfWorkCacheItem<TCacheItem>> |
GetUnitOfWorkCacheKey()
Declaration
protected virtual string GetUnitOfWorkCacheKey()
Returns
Type | Description |
---|---|
System.String |
HandleException(Exception)
Declaration
protected virtual void HandleException(Exception ex)
Parameters
Type | Name | Description |
---|---|---|
Exception | ex |
HandleExceptionAsync(Exception)
Declaration
protected virtual Task HandleExceptionAsync(Exception ex)
Parameters
Type | Name | Description |
---|---|---|
Exception | ex |
Returns
Type | Description |
---|---|
Task |
NormalizeKey(TCacheKey)
Declaration
protected virtual string NormalizeKey(TCacheKey key)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey | key |
Returns
Type | Description |
---|---|
System.String |
Refresh(TCacheKey, Nullable<Boolean>)
Refreshes the cache value of the given key, and resets its sliding expiration timeout.
Declaration
public virtual void Refresh(TCacheKey key, bool? hideErrors = null)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey | key | The key of cached item to be retrieved from the cache. |
System.Nullable<System.Boolean> | hideErrors | Indicates to throw or hide the exceptions for the distributed cache. |
RefreshAsync(TCacheKey, Nullable<Boolean>, CancellationToken)
Refreshes the cache value of the given key, and resets its sliding expiration timeout.
Declaration
public virtual Task RefreshAsync(TCacheKey key, bool? hideErrors = null, CancellationToken token = null)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey | key | The key of cached item to be retrieved from the cache. |
System.Nullable<System.Boolean> | hideErrors | Indicates to throw or hide the exceptions for the distributed cache. |
CancellationToken | token | The System.Threading.CancellationToken for the task. |
Returns
Type | Description |
---|---|
Task | The System.Threading.Tasks.Task indicating that the operation is asynchronous. |
Remove(TCacheKey, Nullable<Boolean>, Boolean)
Removes the cache item for given key from cache.
Declaration
public virtual void Remove(TCacheKey key, bool? hideErrors = null, bool considerUow = false)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey | key | The key of cached item to be retrieved from the cache. |
System.Nullable<System.Boolean> | hideErrors | Indicates to throw or hide the exceptions for the distributed cache. |
System.Boolean | considerUow | This will store the cache in the current unit of work until the end of the current unit of work does not really affect the cache. |
RemoveAsync(TCacheKey, Nullable<Boolean>, Boolean, CancellationToken)
Removes the cache item for given key from cache.
Declaration
public virtual Task RemoveAsync(TCacheKey key, bool? hideErrors = null, bool considerUow = false, CancellationToken token = null)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey | key | The key of cached item to be retrieved from the cache. |
System.Nullable<System.Boolean> | hideErrors | Indicates to throw or hide the exceptions for the distributed cache. |
System.Boolean | considerUow | This will store the cache in the current unit of work until the end of the current unit of work does not really affect the cache. |
CancellationToken | token | The System.Threading.CancellationToken for the task. |
Returns
Type | Description |
---|---|
Task | The System.Threading.Tasks.Task indicating that the operation is asynchronous. |
Set(TCacheKey, TCacheItem, DistributedCacheEntryOptions, Nullable<Boolean>, Boolean)
Sets the cache item value for the provided key.
Declaration
public virtual void Set(TCacheKey key, TCacheItem value, DistributedCacheEntryOptions options = null, bool? hideErrors = null, bool considerUow = false)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey | key | The key of cached item to be retrieved from the cache. |
TCacheItem | value | The cache item value to set in the cache. |
DistributedCacheEntryOptions | options | The cache options for the value. |
System.Nullable<System.Boolean> | hideErrors | Indicates to throw or hide the exceptions for the distributed cache. |
System.Boolean | considerUow | This will store the cache in the current unit of work until the end of the current unit of work does not really affect the cache. |
SetAsync(TCacheKey, TCacheItem, DistributedCacheEntryOptions, Nullable<Boolean>, Boolean, CancellationToken)
Sets the cache item value for the provided key.
Declaration
public virtual Task SetAsync(TCacheKey key, TCacheItem value, DistributedCacheEntryOptions options = null, bool? hideErrors = null, bool considerUow = false, CancellationToken token = null)
Parameters
Type | Name | Description |
---|---|---|
TCacheKey | key | The key of cached item to be retrieved from the cache. |
TCacheItem | value | The cache item value to set in the cache. |
DistributedCacheEntryOptions | options | The cache options for the value. |
System.Nullable<System.Boolean> | hideErrors | Indicates to throw or hide the exceptions for the distributed cache. |
System.Boolean | considerUow | This will store the cache in the current unit of work until the end of the current unit of work does not really affect the cache. |
CancellationToken | token | The System.Threading.CancellationToken for the task. |
Returns
Type | Description |
---|---|
Task | The System.Threading.Tasks.Task indicating that the operation is asynchronous. |
SetDefaultOptions()
Declaration
protected virtual void SetDefaultOptions()
SetMany(IEnumerable<KeyValuePair<TCacheKey, TCacheItem>>, DistributedCacheEntryOptions, Nullable<Boolean>, Boolean)
Declaration
public void SetMany(IEnumerable<KeyValuePair<TCacheKey, TCacheItem>> items, DistributedCacheEntryOptions options = null, bool? hideErrors = null, bool considerUow = false)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<KeyValuePair<TCacheKey, TCacheItem>> | items | |
DistributedCacheEntryOptions | options | |
System.Nullable<System.Boolean> | hideErrors | |
System.Boolean | considerUow |
SetManyAsync(IEnumerable<KeyValuePair<TCacheKey, TCacheItem>>, DistributedCacheEntryOptions, Nullable<Boolean>, Boolean, CancellationToken)
Declaration
public virtual Task SetManyAsync(IEnumerable<KeyValuePair<TCacheKey, TCacheItem>> items, DistributedCacheEntryOptions options = null, bool? hideErrors = null, bool considerUow = false, CancellationToken token = null)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<KeyValuePair<TCacheKey, TCacheItem>> | items | |
DistributedCacheEntryOptions | options | |
System.Nullable<System.Boolean> | hideErrors | |
System.Boolean | considerUow | |
CancellationToken | token |
Returns
Type | Description |
---|---|
Task |
SetManyFallback(KeyValuePair<TCacheKey, TCacheItem>[], DistributedCacheEntryOptions, Nullable<Boolean>, Boolean)
Declaration
protected virtual void SetManyFallback(KeyValuePair<TCacheKey, TCacheItem>[] items, DistributedCacheEntryOptions options = null, bool? hideErrors = null, bool considerUow = false)
Parameters
Type | Name | Description |
---|---|---|
KeyValuePair<TCacheKey, TCacheItem>[] | items | |
DistributedCacheEntryOptions | options | |
System.Nullable<System.Boolean> | hideErrors | |
System.Boolean | considerUow |
SetManyFallbackAsync(KeyValuePair<TCacheKey, TCacheItem>[], DistributedCacheEntryOptions, Nullable<Boolean>, Boolean, CancellationToken)
Declaration
protected virtual Task SetManyFallbackAsync(KeyValuePair<TCacheKey, TCacheItem>[] items, DistributedCacheEntryOptions options = null, bool? hideErrors = null, bool considerUow = false, CancellationToken token = null)
Parameters
Type | Name | Description |
---|---|---|
KeyValuePair<TCacheKey, TCacheItem>[] | items | |
DistributedCacheEntryOptions | options | |
System.Nullable<System.Boolean> | hideErrors | |
System.Boolean | considerUow | |
CancellationToken | token |
Returns
Type | Description |
---|---|
Task |
ShouldConsiderUow(Boolean)
Declaration
protected virtual bool ShouldConsiderUow(bool considerUow)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | considerUow |
Returns
Type | Description |
---|---|
System.Boolean |
ToCacheItem(Byte[])
Declaration
protected virtual TCacheItem ToCacheItem(byte[] bytes)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | bytes |
Returns
Type | Description |
---|---|
TCacheItem |
ToCacheItems(Byte[][], TCacheKey[])
Declaration
protected virtual KeyValuePair<TCacheKey, TCacheItem>[] ToCacheItems(byte[][] itemBytes, TCacheKey[] itemKeys)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[][] | itemBytes | |
TCacheKey[] | itemKeys |
Returns
Type | Description |
---|---|
KeyValuePair<TCacheKey, TCacheItem>[] |
ToRawCacheItems(KeyValuePair<TCacheKey, TCacheItem>[])
Declaration
protected virtual KeyValuePair<string, byte[]>[] ToRawCacheItems(KeyValuePair<TCacheKey, TCacheItem>[] items)
Parameters
Type | Name | Description |
---|---|---|
KeyValuePair<TCacheKey, TCacheItem>[] | items |
Returns
Type | Description |
---|---|
KeyValuePair<System.String, System.Byte[]>[] |