Namespace CacheManager.Core
Classes
BaseCacheManager<TCacheValue>
The BaseCacheManager<TCacheValue> implements ICacheManager<TCacheValue> and is the main class of this library. The cache manager delegates all cache operations to the list of BaseCacheHandle<TCacheValue>'s which have been added. It will keep them in sync according to rules and depending on the configuration.
BondConfigurationBuilderExtensions
Extensions for the configuration builder for the
Microsoft.Bond
based ICacheSerializer.
CacheFactory
Helper class to instantiate new ICacheManager<TCacheValue> instances from configuration.
CacheHandleConfiguration
Defines all settings the cache handle should respect.
CacheItem<T>
The item which will be stored in the cache holding the cache value and additional information needed by the cache handles and manager.
CacheManagerConfiguration
The basic cache manager configuration class.
ConfigurationBuilder
Helper class to load cache manager configurations from file or to build new configurations in a fluent way.
This only loads configurations. To build a cache manager instance, use CacheFactory
and pass in the configuration. Or use the Build
methods of CacheFactory
!
ConfigurationBuilderCacheHandlePart
Used to build a CacheHandleConfiguration
.
ConfigurationBuilderCachePart
Used to build a CacheManagerConfiguration
.
CouchbaseConfigurationBuilderExtensions
Extensions for the configuration builder specific to the Couchbase cache handle.
JsonConfigurationBuilderExtensions
Extensions for the configuration builder for the Newtonsoft.Json
based ICacheSerializer
.
MemcachedConfigurationBuilderExtensions
Extensions for the configuration builder specific to the Memcached cache handle.
MicrosoftLoggingBuilderExtensions
Extensions for the configuration builder for logging.
MicrosoftMemoryCachingBuilderExtensions
Extensions for the configuration builder specific to
ProtoBufConfigurationBuilderExtensions
Configuration builder extensions for the ProtoBuf
based ICacheSerializer.
RedisConfigurationBuilderExtensions
Extensions for the configuration builder specific to the redis cache handle.
RuntimeCachingBuilderExtensions
Extensions for the configuration builder specific to System.Runtime.Caching cache handle.
WebConfigurationBuilderExtensions
Extensions for the configuration builder specific to System.Runtime.Caching cache handle.
Interfaces
ICache<TCacheValue>
This interface is the base contract for the main stack of this library.
The ICacheHandle
and ICacheManager
interfaces are derived from ICache
,
meaning the method call signature throughout the stack is very similar.
We want the flexibility of having a simple get/put/delete cache up to multiple caches layered on top of each other, still using the same simple and easy to understand interface.
The TCacheValue
can, but most not be used in the sense of strongly typing. This
means, you can define and configure a cache for certain object types within your domain. But
you can also use object
and store anything you want within the cache. All underlying
cache technologies usually do not care about types of the cache items.
ICacheManager<TCacheValue>
This interface extends the ICache
interface by some cache manager specific methods and events.
ICacheManagerConfiguration
The writable configuration contract used primarrily internal only
IReadOnlyCacheManagerConfiguration
The readonly configuration contract for cache managers.
Enums
CacheUpdateMode
Defines the possible update modes of the cache manager.
Update mode works on Get operations. If the cache manager finds the cache item in one of the cache handles, and other cache handles do not have that item, it might add the item to the other cache handles depending on the mode.
ExpirationMode
Defines the supported expiration modes for cache items.
Value None
will indicate that no expiration should be set.