<?xml version="1.0"?>
<doc>
    <assembly>
        <name>CacheManager.Core</name>
    </assembly>
    <members>
        <member name="T:CacheManager.Core.BaseCacheManager`1">
            <summary>
            The <see cref="T:CacheManager.Core.BaseCacheManager`1"/> implements <see cref="T:CacheManager.Core.ICacheManager`1"/> and is the main class
            of this library.
            The cache manager delegates all cache operations to the list of <see cref="T:CacheManager.Core.Internal.BaseCacheHandle`1"/>'s which have been
            added. It will keep them in sync according to rules and depending on the configuration.
            </summary>
            <typeparam name="TCacheValue">The type of the cache value.</typeparam>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.#ctor(CacheManager.Core.CacheManagerConfiguration)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.BaseCacheManager`1"/> class
            using the specified <paramref name="configuration"/>.
            If the name of the <paramref name="configuration"/> is defined, the cache manager will
            use it. Otherwise a random string will be generated.
            </summary>
            <param name="configuration">
            The configuration which defines the structure and complexity of the cache manager.
            </param>
            <exception cref="T:System.ArgumentNullException">
            When <paramref name="configuration"/> is null.
            </exception>
            <see cref="T:CacheManager.Core.CacheFactory"/>
            <see cref="T:CacheManager.Core.ConfigurationBuilder"/>
            <see cref="T:CacheManager.Core.Internal.BaseCacheHandle`1"/>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.#ctor(System.String,CacheManager.Core.CacheManagerConfiguration)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.BaseCacheManager`1"/> class
            using the specified <paramref name="name"/> and <paramref name="configuration"/>.
            </summary>
            <param name="name">The cache name.</param>
            <param name="configuration">
            The configuration which defines the structure and complexity of the cache manager.
            </param>
            <exception cref="T:System.ArgumentNullException">
            When <paramref name="name"/> or <paramref name="configuration"/> is null.
            </exception>
            <see cref="T:CacheManager.Core.CacheFactory"/>
            <see cref="T:CacheManager.Core.ConfigurationBuilder"/>
            <see cref="T:CacheManager.Core.Internal.BaseCacheHandle`1"/>
        </member>
        <member name="E:CacheManager.Core.BaseCacheManager`1.OnAdd">
            <summary>
            Occurs when an item was successfully added to the cache.
            <para>The event will not get triggered if <c>Add</c> would return false.</para>
            </summary>
        </member>
        <member name="E:CacheManager.Core.BaseCacheManager`1.OnClear">
            <summary>
            Occurs when <c>Clear</c> gets called, after the cache has been cleared.
            </summary>
        </member>
        <member name="E:CacheManager.Core.BaseCacheManager`1.OnClearRegion">
            <summary>
            Occurs when <c>ClearRegion</c> gets called, after the cache region has been cleared.
            </summary>
        </member>
        <member name="E:CacheManager.Core.BaseCacheManager`1.OnGet">
            <summary>
            Occurs when an item was retrieved from the cache.
            <para>The event will only get triggered on cache hit. Misses do not trigger!</para>
            </summary>
        </member>
        <member name="E:CacheManager.Core.BaseCacheManager`1.OnPut">
            <summary>
            Occurs when an item was put into the cache.
            </summary>
        </member>
        <member name="E:CacheManager.Core.BaseCacheManager`1.OnRemove">
            <summary>
            Occurs when an item was successfully removed from the cache.
            </summary>
        </member>
        <member name="E:CacheManager.Core.BaseCacheManager`1.OnUpdate">
            <summary>
            Occurs when an item was successfully updated.
            </summary>
        </member>
        <member name="P:CacheManager.Core.BaseCacheManager`1.Configuration">
            <summary>
            Gets the configuration.
            </summary>
            <value>The configuration.</value>
        </member>
        <member name="P:CacheManager.Core.BaseCacheManager`1.CacheHandles">
            <summary>
            Gets a list of cache handles currently registered within the cache manager.
            </summary>
            <value>The cache handles.</value>
            <remarks>
            This list is read only, any changes to the returned list instance will not affect the
            state of the cache manager instance.
            </remarks>
        </member>
        <member name="P:CacheManager.Core.BaseCacheManager`1.Name">
            <summary>
            Gets the cache name.
            </summary>
            <value>The name of the cache.</value>
        </member>
        <member name="P:CacheManager.Core.BaseCacheManager`1.Logger">
            <inheritdoc />
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.AddOrUpdate(System.String,`0,System.Func{`0,`0})">
            <summary>
            Adds an item to the cache or, if the item already exists, updates the item using the
            <paramref name="updateValue"/> function.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="addValue">
            The value which should be added in case the item doesn't already exist.
            </param>
            <param name="updateValue">
            The function to perform the update in case the item does already exist.
            </param>
            <returns>
            The value which has been added or updated, or null, if the update was not successful.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> are null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.AddOrUpdate(System.String,System.String,`0,System.Func{`0,`0})">
            <summary>
            Adds an item to the cache or, if the item already exists, updates the item using the
            <paramref name="updateValue"/> function.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="region">The region of the key to update.</param>
            <param name="addValue">
            The value which should be added in case the item doesn't already exist.
            </param>
            <param name="updateValue">
            The function to perform the update in case the item does already exist.
            </param>
            <returns>
            The value which has been added or updated, or null, if the update was not successful.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="region"/> or <paramref name="updateValue"/>
            are null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.AddOrUpdate(System.String,`0,System.Func{`0,`0},System.Int32)">
            <summary>
            Adds an item to the cache or, if the item already exists, updates the item using the
            <paramref name="updateValue"/> function.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="addValue">
            The value which should be added in case the item doesn't already exist.
            </param>
            <param name="updateValue">
            The function to perform the update in case the item does already exist.
            </param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>Null</c>.
            </param>
            <returns>
            The value which has been added or updated, or null, if the update was not successful.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> is null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.AddOrUpdate(System.String,System.String,`0,System.Func{`0,`0},System.Int32)">
            <summary>
            Adds an item to the cache or, if the item already exists, updates the item using the
            <paramref name="updateValue"/> function.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="region">The region of the key to update.</param>
            <param name="addValue">
            The value which should be added in case the item doesn't already exist.
            </param>
            <param name="updateValue">
            The function to perform the update in case the item does already exist.
            </param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>Null</c>.
            </param>
            <returns>
            The value which has been added or updated, or null, if the update was not successful.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="region"/> or <paramref name="updateValue"/> is null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.AddOrUpdate(CacheManager.Core.CacheItem{`0},System.Func{`0,`0})">
            <summary>
            Adds an item to the cache or, if the item already exists, updates the item using the
            <paramref name="updateValue"/> function.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="addItem">The item which should be added or updated.</param>
            <param name="updateValue">The function to perform the update, if the item does exist.</param>
            <returns>
            The value which has been added or updated, or null, if the update was not successful.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="addItem"/> or <paramref name="updateValue"/> are null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.AddOrUpdate(CacheManager.Core.CacheItem{`0},System.Func{`0,`0},System.Int32)">
            <summary>
            Adds an item to the cache or, if the item already exists, updates the item using the
            <paramref name="updateValue"/> function.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="addItem">The item which should be added or updated.</param>
            <param name="updateValue">The function to perform the update, if the item does exist.</param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>Null</c>.
            </param>
            <returns>
            The value which has been added or updated, or null, if the update was not successful.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="addItem"/> or <paramref name="updateValue"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.Clear">
            <summary>
            Clears this cache, removing all items in the base cache and all regions.
            </summary>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.ClearRegion(System.String)">
            <summary>
            Clears the cache region, removing all items from the specified <paramref name="region"/> only.
            </summary>
            <param name="region">The cache region.</param>
            <exception cref="T:System.ArgumentNullException">If region is null.</exception>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.Expire(System.String,CacheManager.Core.ExpirationMode,System.TimeSpan)">
            <summary>
            Changes the expiration <paramref name="mode" /> and <paramref name="timeout" /> for the
            given <paramref name="key" />.
            </summary>
            <param name="key">The cache key.</param>
            <param name="mode">The expiration mode.</param>
            <param name="timeout">The expiration timeout.</param>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.Expire(System.String,System.String,CacheManager.Core.ExpirationMode,System.TimeSpan)">
            <summary>
            Changes the expiration <paramref name="mode" /> and <paramref name="timeout" /> for the
            given <paramref name="key" />.
            </summary>
            <param name="key">The cache key.</param>
            <param name="region">The cache region.</param>
            <param name="mode">The expiration mode.</param>
            <param name="timeout">The expiration timeout.</param>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String" /> that represents this instance.
            </returns>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.TryUpdate(System.String,System.Func{`0,`0},`0@)">
            <summary>
            Tries to update an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="value">The updated value, or null, if the update was not successful.</param>
            <returns><c>True</c> if the update operation was successful, <c>False</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> are null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.TryUpdate(System.String,System.String,System.Func{`0,`0},`0@)">
            <summary>
            Tries to update an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="region">The region of the key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="value">The updated value, or null, if the update was not successful.</param>
            <returns><c>True</c> if the update operation was successful, <c>False</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="region"/> or <paramref name="updateValue"/>
            are null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.TryUpdate(System.String,System.Func{`0,`0},System.Int32,`0@)">
            <summary>
            Tries to update an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>False</c>.
            </param>
            <param name="value">The updated value, or null, if the update was not successful.</param>
            <returns><c>True</c> if the update operation was successful, <c>False</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> is null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.TryUpdate(System.String,System.String,System.Func{`0,`0},System.Int32,`0@)">
            <summary>
            Tries to update an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="region">The region of the key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>False</c>.
            </param>
            <param name="value">The updated value, or null, if the update was not successful.</param>
            <returns><c>True</c> if the update operation was successful, <c>False</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="region"/> or <paramref name="updateValue"/> is null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.Update(System.String,System.Func{`0,`0})">
            <summary>
            Updates an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
            <param name="key">The key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <returns><c>True</c> if the update operation was successfully, <c>False</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.Update(System.String,System.String,System.Func{`0,`0})">
            <summary>
            Updates an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
            <param name="key">The key to update.</param>
            <param name="region">The region of the key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <returns><c>True</c> if the update operation was successfully, <c>False</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="region"/> or <paramref name="updateValue"/>
            is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.Update(System.String,System.Func{`0,`0},System.Int32)">
            <summary>
            Updates an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
            <param name="key">The key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>Null</c>.
            </param>
            <returns>The updated value, or null, if the update was not successful.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.Update(System.String,System.String,System.Func{`0,`0},System.Int32)">
            <summary>
            Updates an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
            <param name="key">The key to update.</param>
            <param name="region">The region of the key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>Null</c>.
            </param>
            <returns>The updated value, or null, if the update was not successful.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="region"/> or <paramref name="updateValue"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.AddInternal(CacheManager.Core.CacheItem{`0})">
            <summary>
            Adds a value to the cache handles. Triggers OnAdd if the key has been added.
            </summary>
            <param name="item">The <c>CacheItem</c> to be added to the cache.</param>
            <returns>
            <c>true</c> if the key was not already added to the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">If item is null.</exception>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.PutInternal(CacheManager.Core.CacheItem{`0})">
            <summary>
            Puts a value into all cache handles. Triggers OnPut.
            </summary>
            <param name="item">The <c>CacheItem</c> to be added to the cache.</param>
            <exception cref="T:System.ArgumentNullException">If item is null.</exception>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.Dispose(System.Boolean)">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting
            unmanaged resources.
            </summary>
            <param name="disposeManaged">Indicates if the dispose should release managed resources.</param>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.GetCacheItemInternal(System.String)">
            <summary>
            Gets the <c>CacheItem</c> for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>The <c>CacheItem</c>.</returns>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.GetCacheItemInternal(System.String,System.String)">
            <summary>
            Gets the <c>CacheItem</c> for the specified key and region.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>The <c>CacheItem</c>.</returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.RemoveInternal(System.String)">
            <summary>
            Removes a value from the cache for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>
            <c>true</c> if the key was found and removed from the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.BaseCacheManager`1.RemoveInternal(System.String,System.String)">
            <summary>
            Removes a value from the cache for the specified key and region.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>
            <c>true</c> if the key was found and removed from the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="T:CacheManager.Core.CacheFactory">
            <summary>
            Helper class to instantiate new <see cref="T:CacheManager.Core.ICacheManager`1"/> instances from configuration.
            </summary>
        </member>
        <member name="M:CacheManager.Core.CacheFactory.Build(System.String,System.Action{CacheManager.Core.ConfigurationBuilderCachePart})">
             <summary>
             <para>Instantiates a cache manager using the inline configuration defined by <paramref name="settings"/>.</para>
             <para>This Build method returns a <c>ICacheManager</c> with cache item type being <c>System.Object</c>.</para>
             </summary>
             <example>
             The following example show how to build a <c>CacheManagerConfiguration</c> and then
             using the <c>CacheFactory</c> to create a new cache manager instance.
             <code>
             <![CDATA[
             var cache = CacheFactory.Build("myCacheName", settings =>
             {
                settings
                    .WithUpdateMode(CacheUpdateMode.Up)
                    .WithDictionaryHandle()
                        .EnablePerformanceCounters()
                        .WithExpiration(ExpirationMode.Sliding, TimeSpan.FromSeconds(10));
             });
            
             cache.Add("key", "value");
             ]]>
             </code>
             </example>
             <param name="cacheName">The name of the cache manager instance.</param>
             <param name="settings">
             The configuration. Use the settings element to configure the cache manager instance, add
             cache handles and also to configure the cache handles in a fluent way.
             </param>
             <returns>The cache manager instance with cache item type being <c>System.Object</c>.</returns>
             <seealso cref="T:CacheManager.Core.ICacheManager`1"/>
             <exception cref="T:System.ArgumentNullException">
             Thrown if the <paramref name="cacheName"/> or <paramref name="settings"/> is null.
             </exception>
             <exception cref="T:System.InvalidOperationException">
             Thrown on certain configuration errors related to the cache handles.
             </exception>
        </member>
        <member name="M:CacheManager.Core.CacheFactory.Build(System.Action{CacheManager.Core.ConfigurationBuilderCachePart})">
             <summary>
             <para>Instantiates a cache manager using the inline configuration defined by <paramref name="settings"/>.</para>
             <para>This Build method returns a <see cref="T:CacheManager.Core.ICacheManager`1"/> with cache item type being <see cref="T:System.Object"/>.</para>
             </summary>
             <example>
             The following example show how to build a <c>CacheManagerConfiguration</c> and then
             using the <c>CacheFactory</c> to create a new cache manager instance.
             <code>
             <![CDATA[
             var cache = CacheFactory.Build(settings =>
             {
                settings
                    .WithUpdateMode(CacheUpdateMode.Up)
                    .WithDictionaryHandle()
                        .EnablePerformanceCounters()
                        .WithExpiration(ExpirationMode.Sliding, TimeSpan.FromSeconds(10));
             });
            
             cache.Add("key", "value");
             ]]>
             </code>
             </example>
             <param name="settings">
             The configuration. Use the settings element to configure the cache manager instance, add
             cache handles and also to configure the cache handles in a fluent way.
             </param>
             <returns>The cache manager instance.</returns>
             <seealso cref="T:CacheManager.Core.ICacheManager`1"/>
             <exception cref="T:System.ArgumentNullException">
             Thrown if <paramref name="settings"/> is null.
             </exception>
             <exception cref="T:System.InvalidOperationException">
             Thrown on certain configuration errors related to the cache handles.
             </exception>
        </member>
        <member name="M:CacheManager.Core.CacheFactory.Build``1(System.String,System.Action{CacheManager.Core.ConfigurationBuilderCachePart})">
             <summary>
             <para>Instantiates a cache manager using the inline configuration defined by <paramref name="settings"/>.</para>
             </summary>
             <example>
             The following example show how to build a <c>CacheManagerConfiguration</c> and then
             using the <c>CacheFactory</c> to create a new cache manager instance.
             <code>
             <![CDATA[
             var cache = CacheFactory.Build("myCacheName", settings =>
             {
                settings
                    .WithUpdateMode(CacheUpdateMode.Up)
                    .WithDictionaryHandle()
                        .EnablePerformanceCounters()
                        .WithExpiration(ExpirationMode.Sliding, TimeSpan.FromSeconds(10));
             });
            
             cache.Add("key", "value");
             ]]>
             </code>
             </example>
             <param name="cacheName">The name of the cache manager instance.</param>
             <param name="settings">
             The configuration. Use the settings element to configure the cache manager instance, add
             cache handles and also to configure the cache handles in a fluent way.
             </param>
             <typeparam name="TCacheValue">The type of the cache item value.</typeparam>
             <returns>The cache manager instance with cache item type being <c>TCacheValue</c>.</returns>
             <seealso cref="T:CacheManager.Core.ICacheManager`1"/>
             <exception cref="T:System.ArgumentNullException">
             Thrown if the <paramref name="cacheName"/> or <paramref name="settings"/> is null.
             </exception>
             <exception cref="T:System.InvalidOperationException">
             Thrown on certain configuration errors related to the cache handles.
             </exception>
        </member>
        <member name="M:CacheManager.Core.CacheFactory.Build``1(System.Action{CacheManager.Core.ConfigurationBuilderCachePart})">
             <summary>
             <para>Instantiates a cache manager using the inline configuration defined by <paramref name="settings"/>.</para>
             </summary>
             <example>
             The following example show how to build a <c>CacheManagerConfiguration</c> and then
             using the <c>CacheFactory</c> to create a new cache manager instance.
             <code>
             <![CDATA[
             var cache = CacheFactory.Build(settings =>
             {
                settings
                    .WithUpdateMode(CacheUpdateMode.Up)
                    .WithDictionaryHandle()
                        .EnablePerformanceCounters()
                        .WithExpiration(ExpirationMode.Sliding, TimeSpan.FromSeconds(10));
             });
            
             cache.Add("key", "value");
             ]]>
             </code>
             </example>
             <param name="settings">
             The configuration. Use the settings element to configure the cache manager instance, add
             cache handles and also to configure the cache handles in a fluent way.
             </param>
             <typeparam name="TCacheValue">The type of the cache item value.</typeparam>
             <returns>The cache manager instance with cache item type being <c>TCacheValue</c>.</returns>
             <seealso cref="T:CacheManager.Core.ICacheManager`1"/>
             <exception cref="T:System.ArgumentNullException">
             Thrown if <paramref name="settings"/> is null.
             </exception>
             <exception cref="T:System.InvalidOperationException">
             Thrown on certain configuration errors related to the cache handles.
             </exception>
        </member>
        <member name="M:CacheManager.Core.CacheFactory.Build(System.Type,System.String,System.Action{CacheManager.Core.ConfigurationBuilderCachePart})">
             <summary>
             Instantiates a cache manager using the given type and the inline configuration defined by <paramref name="settings"/>.
             Use this overload if you cannot invoke the generic method, for example in conjunction with dependency injection.
             </summary>
             <example>
             The following example show how to build a <c>CacheManagerConfiguration</c> and then
             using the <c>CacheFactory</c> to create a new cache manager instance.
             <code>
             <![CDATA[
             var cache = CacheFactory.Build(typeof(string), "myCacheName", settings =>
             {
                settings
                    .WithUpdateMode(CacheUpdateMode.Up)
                    .WithDictionaryHandle()
                        .EnablePerformanceCounters()
                        .WithExpiration(ExpirationMode.Sliding, TimeSpan.FromSeconds(10));
             });
            
             ]]>
             </code>
             </example>
             <param name="cacheValueType">The type of the cache item value.</param>
             <param name="cacheName">The name of the cache manager instance.</param>
             <param name="settings">
             The configuration. Use the settings element to configure the cache manager instance, add
             cache handles and also to configure the cache handles in a fluent way.
             </param>
             <returns>The cache manager instance.</returns>
             <exception cref="T:System.ArgumentNullException">
             Thrown if the <paramref name="cacheName"/> or <paramref name="settings"/> is null.
             </exception>
             <exception cref="T:System.InvalidOperationException">
             Thrown on certain configuration errors related to the cache handles.
             </exception>
        </member>
        <member name="M:CacheManager.Core.CacheFactory.Build(System.Type,System.Action{CacheManager.Core.ConfigurationBuilderCachePart})">
             <summary>
             Instantiates a cache manager using the given type and the inline configuration defined by <paramref name="settings"/>.
             Use this overload if you cannot invoke the generic method, for example in conjunction with dependency injection.
             </summary>
             <example>
             The following example show how to build a <c>CacheManagerConfiguration</c> and then
             using the <c>CacheFactory</c> to create a new cache manager instance.
             <code>
             <![CDATA[
             var cache = CacheFactory.Build(typeof(string), settings =>
             {
                settings
                    .WithUpdateMode(CacheUpdateMode.Up)
                    .WithDictionaryHandle()
                        .EnablePerformanceCounters()
                        .WithExpiration(ExpirationMode.Sliding, TimeSpan.FromSeconds(10));
             });
            
             ]]>
             </code>
             </example>
             <param name="cacheValueType">The type of the cache item value.</param>
             <param name="settings">
             The configuration. Use the settings element to configure the cache manager instance, add
             cache handles and also to configure the cache handles in a fluent way.
             </param>
             <returns>The cache manager instance.</returns>
             <exception cref="T:System.ArgumentNullException">
             Thrown if <paramref name="settings"/> is null.
             </exception>
             <exception cref="T:System.InvalidOperationException">
             Thrown on certain configuration errors related to the cache handles.
             </exception>
        </member>
        <member name="M:CacheManager.Core.CacheFactory.FromConfiguration``1(System.String,CacheManager.Core.CacheManagerConfiguration)">
            <summary>
            <para>Instantiates a cache manager using the given <paramref name="configuration"/>.</para>
            </summary>
            <param name="cacheName">The name of the cache.</param>
            <param name="configuration">
            The configured which will be used to configure the cache manager instance.
            </param>
            <typeparam name="TCacheValue">The type of the cache item value.</typeparam>
            <returns>The cache manager instance.</returns>
            <see cref="T:CacheManager.Core.ConfigurationBuilder"/>
            <exception cref="T:System.ArgumentNullException">
            Thrown if the <paramref name="configuration"/> is null.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            Thrown on certain configuration errors related to the cache handles.
            </exception>
        </member>
        <member name="M:CacheManager.Core.CacheFactory.FromConfiguration``1(CacheManager.Core.CacheManagerConfiguration)">
             <summary>
             <para>Instantiates a cache manager using the given <paramref name="configuration"/>.</para>
             </summary>
             <example>
             The following example show how to build a <c>CacheManagerConfiguration</c> and then
             using the <c>CacheFactory</c> to create a new cache manager instance.
             <code>
             <![CDATA[
             var managerConfiguration = ConfigurationBuilder.BuildConfiguration<object>(settings =>
             {
                 settings.WithUpdateMode(CacheUpdateMode.Up)
                     .WithDictionaryCacheHandle<object>>()
                         .EnablePerformanceCounters()
                         .WithExpiration(ExpirationMode.Sliding, TimeSpan.FromSeconds(10));
             });
            
             var cache = CacheFactory.FromConfiguration<object>(managerConfiguration);
             cache.Add("key", "value");
             ]]>
             </code>
             </example>
             <param name="configuration">
             The configured which will be used to configure the cache manager instance.
             </param>
             <typeparam name="TCacheValue">The type of the cache item value.</typeparam>
             <returns>The cache manager instance.</returns>
             <see cref="T:CacheManager.Core.ConfigurationBuilder"/>
             <exception cref="T:System.ArgumentNullException">
             Thrown if the <paramref name="configuration"/> is null.
             </exception>
             <exception cref="T:System.InvalidOperationException">
             Thrown on certain configuration errors related to the cache handles.
             </exception>
        </member>
        <member name="M:CacheManager.Core.CacheFactory.FromConfiguration(System.Type,System.String,CacheManager.Core.CacheManagerConfiguration)">
            <summary>
            Instantiates a cache manager using the given <paramref name="cacheValueType"/> and <paramref name="configuration"/>.
            Use this overload only if you cannot use the generic overload. The return type will be <c>Object</c>.
            This method can be used for example in conjunction with dependency injection frameworks.
            </summary>
            <param name="cacheValueType">The type of the cache item value.</param>
            <param name="cacheName">The name of the cache.</param>
            <param name="configuration">
            The configured which will be used to configure the cache manager instance.
            </param>
            <returns>The cache manager instance.</returns>
            <see cref="T:CacheManager.Core.ConfigurationBuilder"/>
            <exception cref="T:System.ArgumentNullException">
            Thrown if the <c>cacheValueType</c>, <c>cacheName</c> or <c>configuration</c> is null.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            Thrown on certain configuration errors related to the cache handles.
            </exception>
        </member>
        <member name="M:CacheManager.Core.CacheFactory.FromConfiguration(System.Type,CacheManager.Core.CacheManagerConfiguration)">
            <summary>
            Instantiates a cache manager using the given <paramref name="cacheValueType"/> and <paramref name="configuration"/>.
            Use this overload only if you cannot use the generic overload. The return type will be <c>Object</c>.
            This method can be used for example in conjunction with dependency injection frameworks.
            </summary>
            <param name="cacheValueType">The type of the cache item value.</param>
            <param name="configuration">
            The configured which will be used to configure the cache manager instance.
            </param>
            <returns>The cache manager instance.</returns>
            <see cref="T:CacheManager.Core.ConfigurationBuilder"/>
            <exception cref="T:System.ArgumentNullException">
            Thrown if the <paramref name="cacheValueType"/> or <paramref name="configuration"/> are null.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            Thrown on certain configuration errors related to the cache handles.
            </exception>
        </member>
        <member name="T:CacheManager.Core.CacheHandleConfiguration">
            <summary>
            Defines all settings the cache handle should respect.
            </summary>
        </member>
        <member name="M:CacheManager.Core.CacheHandleConfiguration.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.CacheHandleConfiguration"/> class.
            </summary>
        </member>
        <member name="M:CacheManager.Core.CacheHandleConfiguration.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.CacheHandleConfiguration"/> class.
            </summary>
            <param name="handleName">Name of the handle. This value will also be used for the <see cref="P:CacheManager.Core.CacheHandleConfiguration.Key"/>.</param>
            <exception cref="T:System.ArgumentNullException">If <paramref name="handleName"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.CacheHandleConfiguration.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.CacheHandleConfiguration"/> class.
            </summary>
            <param name="handleName">Name of the handle.</param>
            <param name="configurationKey">The key which can be used to identify another part of the configuration which the handle might need.</param>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="handleName"/> or <paramref name="configurationKey"/> is null.
            </exception>
        </member>
        <member name="P:CacheManager.Core.CacheHandleConfiguration.EnablePerformanceCounters">
            <summary>
            Gets or sets a value indicating whether performance counters should be enabled or not.
            <para>
            If enabled, and the initialization of performance counters doesn't work, for example
            because of security reasons. The counters will get disabled silently.
            </para>
            </summary>
            <value><c>true</c> if performance counters should be enable; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:CacheManager.Core.CacheHandleConfiguration.EnableStatistics">
            <summary>
            Gets or sets a value indicating whether statistics should be enabled.
            </summary>
            <value><c>true</c> if statistics should be enabled; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:CacheManager.Core.CacheHandleConfiguration.ExpirationMode">
            <summary>
            Gets or sets the expiration mode.
            </summary>
            <value>The expiration mode.</value>
        </member>
        <member name="P:CacheManager.Core.CacheHandleConfiguration.ExpirationTimeout">
            <summary>
            Gets or sets the expiration timeout.
            </summary>
            <value>The expiration timeout.</value>
        </member>
        <member name="P:CacheManager.Core.CacheHandleConfiguration.Name">
            <summary>
            Gets or sets the name for the cache handle which is also the identifier of the configuration.
            </summary>
            <value>The name of the handle.</value>
        </member>
        <member name="P:CacheManager.Core.CacheHandleConfiguration.Key">
            <summary>
            Gets or sets the configuration key.
            Some cache handles require to reference another part of the configuration by name.
            If not specified, the <see cref="P:CacheManager.Core.CacheHandleConfiguration.Name"/> will be used instead.
            </summary>
        </member>
        <member name="P:CacheManager.Core.CacheHandleConfiguration.IsBackPlateSource">
            <summary>
            Gets or sets a value indicating whether this instance is back plate source.
            <para>
            Only one cache handle inside one cache manager can be back plate source. Usually this is
            a distributed cache. It might not make any sense to define an in process cache as back
            plate source.
            </para>
            <para>If no back plate is configured for the cache, this setting will have no effect.</para>
            </summary>
            <value><c>true</c> if this instance should be back plate source; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:CacheManager.Core.CacheHandleConfiguration.HandleType">
            <summary>
            Gets or sets the type of the handle.
            </summary>
            <value>The type of the handle.</value>
        </member>
        <member name="T:CacheManager.Core.CacheItem`1">
            <summary>
            The item which will be stored in the cache holding the cache value and additional
            information needed by the cache handles and manager.
            </summary>
            <typeparam name="T">The type of the cache value.</typeparam>
        </member>
        <member name="M:CacheManager.Core.CacheItem`1.#ctor(System.String,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.CacheItem`1"/> class.
            </summary>
            <param name="key">The cache key.</param>
            <param name="value">The cache value.</param>
            <exception cref="T:System.ArgumentNullException">If key or value are null.</exception>
        </member>
        <member name="M:CacheManager.Core.CacheItem`1.#ctor(System.String,System.String,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.CacheItem`1"/> class.
            </summary>
            <param name="key">The cache key.</param>
            <param name="value">The cache value.</param>
            <param name="region">The cache region.</param>
            <exception cref="T:System.ArgumentNullException">If key, value or region are null.</exception>
        </member>
        <member name="M:CacheManager.Core.CacheItem`1.#ctor(System.String,`0,CacheManager.Core.ExpirationMode,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.CacheItem`1"/> class.
            </summary>
            <param name="key">The cache key.</param>
            <param name="value">The cache value.</param>
            <param name="expiration">The expiration mode.</param>
            <param name="timeout">The expiration timeout.</param>
            <exception cref="T:System.ArgumentNullException">If key or value are null.</exception>
        </member>
        <member name="M:CacheManager.Core.CacheItem`1.#ctor(System.String,System.String,`0,CacheManager.Core.ExpirationMode,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.CacheItem`1"/> class.
            </summary>
            <param name="key">The cache key.</param>
            <param name="value">The cache value.</param>
            <param name="region">The cache region.</param>
            <param name="expiration">The expiration mode.</param>
            <param name="timeout">The expiration timeout.</param>
            <exception cref="T:System.ArgumentNullException">If key, value or region are null.</exception>
        </member>
        <member name="M:CacheManager.Core.CacheItem`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.CacheItem`1"/> class.
            </summary>
        </member>
        <member name="P:CacheManager.Core.CacheItem`1.CreatedUtc">
            <summary>
            Gets the creation date of the cache item.
            </summary>
            <value>The creation date.</value>
        </member>
        <member name="P:CacheManager.Core.CacheItem`1.ExpirationMode">
            <summary>
            Gets the expiration mode.
            </summary>
            <value>The expiration mode.</value>
        </member>
        <member name="P:CacheManager.Core.CacheItem`1.ExpirationTimeout">
            <summary>
            Gets the expiration timeout.
            </summary>
            <value>The expiration timeout.</value>
        </member>
        <member name="P:CacheManager.Core.CacheItem`1.Key">
            <summary>
            Gets the cache key.
            </summary>
            <value>The cache key.</value>
        </member>
        <member name="P:CacheManager.Core.CacheItem`1.LastAccessedUtc">
            <summary>
            Gets or sets the last accessed date of the cache item.
            </summary>
            <value>The last accessed date.</value>
        </member>
        <member name="P:CacheManager.Core.CacheItem`1.Region">
            <summary>
            Gets the cache region.
            </summary>
            <value>The cache region.</value>
        </member>
        <member name="P:CacheManager.Core.CacheItem`1.Value">
            <summary>
            Gets the cache value.
            </summary>
            <value>The cache value.</value>
        </member>
        <member name="P:CacheManager.Core.CacheItem`1.ValueType">
            <summary>
            Gets the type of the cache value.
            <para>This might be used for serialization and deserialization.</para>
            </summary>
            <value>The type of the cache value.</value>
        </member>
        <member name="M:CacheManager.Core.CacheItem`1.WithExpiration(CacheManager.Core.ExpirationMode,System.TimeSpan)">
            <summary>
            Creates a copy of the current cache item with different expiration options.
            This method doesn't change the state of the item in the cache. Use <c>Put</c> or similar methods to update the cache with the returned copy of the item.
            </summary>
            <remarks>We do not clone the cache item or value.</remarks>
            <param name="mode">The expiration mode.</param>
            <param name="timeout">The expiration timeout.</param>
            <returns>The new instance of the cache item.</returns>
        </member>
        <member name="M:CacheManager.Core.CacheItem`1.WithAbsoluteExpiration(System.DateTimeOffset)">
            <summary>
            Creates a copy of the current cache item and sets a new absolute expiration date.
            This method doesn't change the state of the item in the cache. Use <c>Put</c> or similar methods to update the cache with the returned copy of the item.
            </summary>
            <remarks>We do not clone the cache item or value.</remarks>
            <param name="absoluteExpiration">The absolute expiration date.</param>
            <returns>The new instance of the cache item.</returns>
        </member>
        <member name="M:CacheManager.Core.CacheItem`1.WithSlidingExpiration(System.TimeSpan)">
            <summary>
            Creates a copy of the current cache item and sets a new sliding expiration value.
            This method doesn't change the state of the item in the cache. Use <c>Put</c> or similar methods to update the cache with the returned copy of the item.
            </summary>
            <remarks>We do not clone the cache item or value.</remarks>
            <param name="slidingExpiration">The sliding expiration value.</param>
            <returns>The new instance of the cache item.</returns>
        </member>
        <member name="M:CacheManager.Core.CacheItem`1.WithNoExpiration">
            <summary>
            Creates a copy of the current cache item without expiration. Can be used to update the cache
            and remove any previously configured expiration of the item.
            This method doesn't change the state of the item in the cache. Use <c>Put</c> or similar methods to update the cache with the returned copy of the item.
            </summary>
            <remarks>We do not clone the cache item or value.</remarks>
            <returns>The new instance of the cache item.</returns>
        </member>
        <member name="M:CacheManager.Core.CacheItem`1.WithValue(`0)">
            <summary>
            Creates a copy of the current cache item with new value.
            This method doesn't change the state of the item in the cache. Use <c>Put</c> or similar methods to update the cache with the returned copy of the item.
            </summary>
            <remarks>We do not clone the cache item or value.</remarks>
            <param name="value">The new value.</param>
            <returns>The new instance of the cache item.</returns>
        </member>
        <member name="M:CacheManager.Core.CacheItem`1.WithCreated(System.DateTime)">
            <summary>
            Creates a copy of the current cache item with a given created date.
            This method doesn't change the state of the item in the cache. Use <c>Put</c> or similar methods to update the cache with the returned copy of the item.
            </summary>
            <remarks>We do not clone the cache item or value.</remarks>
            <param name="created">The new created date.</param>
            <returns>The new instance of the cache item.</returns>
        </member>
        <member name="T:CacheManager.Core.CacheManagerConfiguration">
            <summary>
            The basic cache manager configuration class.
            </summary>
        </member>
        <member name="M:CacheManager.Core.CacheManagerConfiguration.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.CacheManagerConfiguration"/> class.
            </summary>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.Builder">
            <summary>
            Gets a <see cref="T:CacheManager.Core.ConfigurationBuilder"/> for the current <see cref="T:CacheManager.Core.CacheManagerConfiguration"/> instance
            to manipulate the configuration fluently.
            </summary>
            <returns>The <see cref="T:CacheManager.Core.ConfigurationBuilder"/>.</returns>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.Name">
            <summary>
            Gets or sets the name of the cache.
            </summary>
            <value>The name of the cache.</value>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.UpdateMode">
            <summary>
            Gets or sets the <see cref="P:CacheManager.Core.CacheManagerConfiguration.UpdateMode"/> for the cache manager instance.
            <para>
            Drives the behavior of the cache manager how it should update the different cache
            handles it manages.
            </para>
            </summary>
            <value>The cache update mode.</value>
            <see cref="P:CacheManager.Core.CacheManagerConfiguration.UpdateMode"/>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.MaxRetries">
            <summary>
            Gets or sets the limit of the number of retry operations per action.
            <para>Default is 50.</para>
            </summary>
            <value>The maximum retries.</value>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.RetryTimeout">
            <summary>
            Gets or sets the number of milliseconds the cache should wait before it will retry an action.
            <para>Default is 100.</para>
            </summary>
            <value>The retry timeout.</value>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.BackPlateConfigurationKey">
            <summary>
            Gets or sets the configuration key the back plate might use.
            </summary>
            <value>The key of the back plate configuration.</value>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.BackPlateChannelName">
            <summary>
            Gets or sets the back plate channel name.
            </summary>
            <value>The channel name.</value>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.HasBackPlate">
            <summary>
            Gets a value indicating whether this instance has a back plate defined.
            </summary>
            <value>
            <c>true</c> if this instance has cache back plate; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.BackPlateType">
            <summary>
            Gets or sets the factory method for a cache back plate.
            </summary>
            <value>The back plate activator.</value>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.BackPlateTypeArguments">
            <summary>
            Gets or sets additional arguments which should be used instantiating the back-plate.
            </summary>
            <value>The list of arguments.</value>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.SerializerType">
            <summary>
            Gets or sets the factory method for a cache serializer.
            </summary>
            <value>The serializer activator.</value>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.SerializerTypeArguments">
            <summary>
            Gets or sets additional arguments which should be used instantiating the serializer.
            </summary>
            <value>The list of arguments.</value>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.LoggerFactoryType">
            <summary>
            Gets or sets the factory method for a logger factory.
            </summary>
            <value>
            The logger factory activator.
            </value>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.LoggerFactoryTypeArguments">
            <summary>
            Gets or sets additional arguments which should be used instantiating the logger factory.
            </summary>
            <value>The list of arguments.</value>
        </member>
        <member name="P:CacheManager.Core.CacheManagerConfiguration.CacheHandleConfigurations">
            <summary>
            Gets the list of cache handle configurations.
            </summary>
            <value>The list of cache handle configurations.</value>
        </member>
        <member name="T:CacheManager.Core.CacheUpdateMode">
            <summary>
            Defines the possible update modes of the cache manager.
            <para>
            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.
            </para>
            </summary>
        </member>
        <member name="F:CacheManager.Core.CacheUpdateMode.None">
            <summary>
            <c>None</c> instructs the cache manager to not set a cache item to other cache handles
            at all.
            </summary>
        </member>
        <member name="F:CacheManager.Core.CacheUpdateMode.Full">
            <summary>
            <c>Full</c> instructs the cache manager to add the cache item found to all cache
            handles, except the one the item was found in.
            </summary>
        </member>
        <member name="F:CacheManager.Core.CacheUpdateMode.Up">
            <summary>
            <c>Up</c> instructs the cache manager to add the cache item found to cache handles which
            are 'above' the one the item was found in. The order of the cache handles is defined by
            the configuration (order they have been added). First cache handle added is the top most one.
            </summary>
        </member>
        <member name="T:CacheManager.Core.ExpirationMode">
            <summary>
            Defines the supported expiration modes for cache items.
            <para>Value <c>None</c> will indicate that no expiration should be set.</para>
            </summary>
        </member>
        <member name="F:CacheManager.Core.ExpirationMode.None">
            <summary>
            Defines no expiration.
            </summary>
        </member>
        <member name="F:CacheManager.Core.ExpirationMode.Sliding">
            <summary>
            Defines sliding expiration. The expiration timeout will be refreshed on every access.
            </summary>
        </member>
        <member name="F:CacheManager.Core.ExpirationMode.Absolute">
            <summary>
            Defines absolute expiration. The item will expire after the expiration timeout.
            </summary>
        </member>
        <member name="T:CacheManager.Core.ICache`1">
            <summary>
            This interface is the base contract for the main stack of this library.
            <para>
            The <c>ICacheHandle</c> and <c>ICacheManager</c> interfaces are derived from <c>ICache</c>,
            meaning the method call signature throughout the stack is very similar.
            </para>
            <para>
            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.
            </para>
            <para>
            The <c>TCacheValue</c> 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 <c>object</c> and store anything you want within the cache. All underlying
            cache technologies usually do not care about types of the cache items.
            </para>
            </summary>
            <typeparam name="TCacheValue">The type of the cache value.</typeparam>
        </member>
        <member name="P:CacheManager.Core.ICache`1.Item(System.String)">
            <summary>
            Gets or sets a value for the specified key. The indexer is identical to the
            corresponding <see cref="M:CacheManager.Core.ICache`1.Put(System.String,`0)"/> and <see cref="M:CacheManager.Core.ICache`1.Get(System.String)"/> calls.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>The value being stored in the cache for the given <paramref name="key"/>.</returns>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="key"/> is null.</exception>
        </member>
        <member name="P:CacheManager.Core.ICache`1.Item(System.String,System.String)">
            <summary>
            Gets or sets a value for the specified key and region. The indexer is identical to the
            corresponding <see cref="M:CacheManager.Core.ICache`1.Put(System.String,`0,System.String)"/> and
            <see cref="M:CacheManager.Core.ICache`1.Get(System.String,System.String)"/> calls.
            <para>
            With <paramref name="region"/> specified, the key will <b>not</b> be found in the global cache.
            </para>
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>
            The value being stored in the cache for the given <paramref name="key"/> and <paramref name="region"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Add(System.String,`0)">
            <summary>
            Adds a value for the specified key to the cache.
            <para>
            The <c>Add</c> method will <b>not</b> be successful if the specified
            <paramref name="key"/> already exists within the cache!
            </para>
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="value">The value which should be cached.</param>
            <returns>
            <c>true</c> if the key was not already added to the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="value"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Add(System.String,`0,System.String)">
            <summary>
            Adds a value for the specified key and region to the cache.
            <para>
            The <c>Add</c> method will <b>not</b> be successful if the specified
            <paramref name="key"/> already exists within the cache!
            </para>
            <para>
            With <paramref name="region"/> specified, the key will <b>not</b> be found in the global cache.
            </para>
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="value">The value which should be cached.</param>
            <param name="region">The cache region.</param>
            <returns>
            <c>true</c> if the key was not already added to the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/>, <paramref name="value"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Add(CacheManager.Core.CacheItem{`0})">
            <summary>
            Adds the specified <c>CacheItem</c> to the cache.
            <para>
            Use this overload to overrule the configured expiration settings of the cache and to
            define a custom expiration for this <paramref name="item"/> only.
            </para>
            <para>
            The <c>Add</c> method will <b>not</b> be successful if the specified
            <paramref name="item"/> already exists within the cache!
            </para>
            </summary>
            <param name="item">The <c>CacheItem</c> to be added to the cache.</param>
            <returns>
            <c>true</c> if the key was not already added to the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="item"/> or the item's key or value is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Clear">
            <summary>
            Clears this cache, removing all items in the base cache and all regions.
            </summary>
        </member>
        <member name="M:CacheManager.Core.ICache`1.ClearRegion(System.String)">
            <summary>
            Clears the cache region, removing all items from the specified <paramref name="region"/> only.
            </summary>
            <param name="region">The cache region.</param>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="region"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Expire(System.String,CacheManager.Core.ExpirationMode,System.TimeSpan)">
            <summary>
            Changes the expiration <paramref name="mode"/> and <paramref name="timeout"/> for the
            given <paramref name="key"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="mode">The expiration mode.</param>
            <param name="timeout">The expiration timeout.</param>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Expire(System.String,System.String,CacheManager.Core.ExpirationMode,System.TimeSpan)">
            <summary>
            Changes the expiration <paramref name="mode"/> and <paramref name="timeout"/> for the
            given <paramref name="key"/> in <paramref name="region"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="region">The cache region.</param>
            <param name="mode">The expiration mode.</param>
            <param name="timeout">The expiration timeout.</param>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Expire(System.String,System.DateTimeOffset)">
            <summary>
            Sets an absolute expiration date for the cache <paramref name="key"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="absoluteExpiration">
            The expiration date. The value must be greater than zero.
            </param>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Expire(System.String,System.String,System.DateTimeOffset)">
            <summary>
            Sets an absolute expiration date for the cache <paramref name="key"/> in <paramref name="region"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="region">The cache region.</param>
            <param name="absoluteExpiration">
            The expiration date. The value must be greater than zero.
            </param>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Expire(System.String,System.TimeSpan)">
            <summary>
            Sets a sliding expiration date for the cache <paramref name="key"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="slidingExpiration">
            The expiration timeout. The value must be greater than zero.
            </param>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Expire(System.String,System.String,System.TimeSpan)">
            <summary>
            Sets a sliding expiration date for the cache <paramref name="key"/> in <paramref name="region"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="region">The cache region.</param>
            <param name="slidingExpiration">
            The expiration timeout. The value must be greater than zero.
            </param>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Get(System.String)">
            <summary>
            Gets a value for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>The value being stored in the cache for the given <paramref name="key"/>.</returns>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Get(System.String,System.String)">
            <summary>
            Gets a value for the specified key and region.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>
            The value being stored in the cache for the given <paramref name="key"/> and <paramref name="region"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Get``1(System.String)">
            <summary>
            Gets a value for the specified key and will cast it to the specified type.
            </summary>
            <typeparam name="TOut">The type the value is converted and returned.</typeparam>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>The value being stored in the cache for the given <paramref name="key"/>.</returns>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="key"/> is null.</exception>
            <exception cref="T:System.InvalidCastException">
            If no explicit cast is defined from <c>TCacheValue</c> to <c>TOut</c>.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Get``1(System.String,System.String)">
            <summary>
            Gets a value for the specified key and region and will cast it to the specified type.
            </summary>
            <typeparam name="TOut">The type the cached value should be converted to.</typeparam>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>
            The value being stored in the cache for the given <paramref name="key"/> and <paramref name="region"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="region"/> is null.
            </exception>
            <exception cref="T:System.InvalidCastException">
            If no explicit cast is defined from <c>TCacheValue</c> to <c>TOut</c>.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.GetCacheItem(System.String)">
            <summary>
            Gets the <c>CacheItem</c> for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>The <c>CacheItem</c>.</returns>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.GetCacheItem(System.String,System.String)">
            <summary>
            Gets the <c>CacheItem</c> for the specified key and region.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>The <c>CacheItem</c>.</returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Put(System.String,`0)">
            <summary>
            Puts a value for the specified key into the cache.
            <para>
            If the <paramref name="key"/> already exists within the cache, the existing value will
            be replaced with the new <paramref name="value"/>.
            </para>
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="value">The value which should be cached.</param>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="value"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Put(System.String,`0,System.String)">
            <summary>
            Puts a value for the specified key and region into the cache.
            <para>
            If the <paramref name="key"/> already exists within the cache, the existing value will
            be replaced with the new <paramref name="value"/>.
            </para>
            <para>
            With <paramref name="region"/> specified, the key will <b>not</b> be found in the global cache.
            </para>
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="value">The value which should be cached.</param>
            <param name="region">The cache region.</param>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/>, <paramref name="value"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Put(CacheManager.Core.CacheItem{`0})">
            <summary>
            Puts the specified <c>CacheItem</c> into the cache.
            <para>
            If the <paramref name="item"/> already exists within the cache, the existing item will
            be replaced with the new <paramref name="item"/>.
            </para>
            <para>
            Use this overload to overrule the configured expiration settings of the cache and to
            define a custom expiration for this <paramref name="item"/> only.
            </para>
            </summary>
            <param name="item">The <c>CacheItem</c> to be cached.</param>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="item"/> or the item's key or value is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Remove(System.String)">
            <summary>
            Removes a value from the cache for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>
            <c>true</c> if the key was found and removed from the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.Remove(System.String,System.String)">
            <summary>
            Removes a value from the cache for the specified key and region.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>
            <c>true</c> if the key was found and removed from the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICache`1.RemoveExpiration(System.String)">
            <summary>
            Removes any expiration settings, previously defined, for the cache <paramref name="key"/>.
            </summary>
            <param name="key">The cache key.</param>
        </member>
        <member name="M:CacheManager.Core.ICache`1.RemoveExpiration(System.String,System.String)">
            <summary>
            Removes any expiration settings, previously defined, for the cache
            <paramref name="key"/> in <paramref name="region"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="region">The cache region.</param>
        </member>
        <member name="T:CacheManager.Core.ICacheManager`1">
            <summary>
            This interface extends the <c>ICache</c> interface by some cache manager specific methods
            and also defines the events someone can register with.
            </summary>
            <typeparam name="TCacheValue">The type of the cache item value.</typeparam>
        </member>
        <member name="E:CacheManager.Core.ICacheManager`1.OnAdd">
            <summary>
            Occurs when an item was successfully added to the cache.
            <para>The event will not get triggered if <c>Add</c> would return false.</para>
            </summary>
        </member>
        <member name="E:CacheManager.Core.ICacheManager`1.OnClear">
            <summary>
            Occurs when <c>Clear</c> gets called, after the cache has been cleared.
            </summary>
        </member>
        <member name="E:CacheManager.Core.ICacheManager`1.OnClearRegion">
            <summary>
            Occurs when <c>ClearRegion</c> gets called, after the cache region has been cleared.
            </summary>
        </member>
        <member name="E:CacheManager.Core.ICacheManager`1.OnGet">
            <summary>
            Occurs when an item was retrieved from the cache.
            <para>The event will only get triggered on cache hit. Misses do not trigger!</para>
            </summary>
        </member>
        <member name="E:CacheManager.Core.ICacheManager`1.OnPut">
            <summary>
            Occurs when an item was put into the cache.
            </summary>
        </member>
        <member name="E:CacheManager.Core.ICacheManager`1.OnRemove">
            <summary>
            Occurs when an item was successfully removed from the cache.
            </summary>
        </member>
        <member name="E:CacheManager.Core.ICacheManager`1.OnUpdate">
            <summary>
            Occurs when an item was successfully updated.
            </summary>
        </member>
        <member name="P:CacheManager.Core.ICacheManager`1.Configuration">
            <summary>
            Gets the configuration.
            </summary>
            <value>The configuration.</value>
        </member>
        <member name="P:CacheManager.Core.ICacheManager`1.Name">
            <summary>
            Gets the cache name.
            </summary>
            <value>The cache name.</value>
        </member>
        <member name="P:CacheManager.Core.ICacheManager`1.CacheHandles">
            <summary>
            Gets a list of cache handles currently registered within the cache manager.
            </summary>
            <value>The cache handles.</value>
            <remarks>
            This list is read only, any changes to the returned list instance will not affect the
            state of the cache manager instance.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.AddOrUpdate(System.String,`0,System.Func{`0,`0})">
            <summary>
            Adds an item to the cache or, if the item already exists, updates the item using the
            <paramref name="updateValue"/> function.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="addValue">
            The value which should be added in case the item doesn't already exist.
            </param>
            <param name="updateValue">
            The function to perform the update in case the item does already exist.
            </param>
            <returns>
            The value which has been added or updated, or null, if the update was not successful.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> are null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.AddOrUpdate(System.String,System.String,`0,System.Func{`0,`0})">
            <summary>
            Adds an item to the cache or, if the item already exists, updates the item using the
            <paramref name="updateValue"/> function.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="region">The region of the key to update.</param>
            <param name="addValue">
            The value which should be added in case the item doesn't already exist.
            </param>
            <param name="updateValue">
            The function to perform the update in case the item does already exist.
            </param>
            <returns>
            The value which has been added or updated, or null, if the update was not successful.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="region"/> or <paramref name="updateValue"/>
            are null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.AddOrUpdate(System.String,`0,System.Func{`0,`0},System.Int32)">
            <summary>
            Adds an item to the cache or, if the item already exists, updates the item using the
            <paramref name="updateValue"/> function.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="addValue">
            The value which should be added in case the item doesn't already exist.
            </param>
            <param name="updateValue">
            The function to perform the update in case the item does already exist.
            </param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>Null</c>.
            </param>
            <returns>
            The value which has been added or updated, or null, if the update was not successful.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> is null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.AddOrUpdate(System.String,System.String,`0,System.Func{`0,`0},System.Int32)">
            <summary>
            Adds an item to the cache or, if the item already exists, updates the item using the
            <paramref name="updateValue"/> function.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="region">The region of the key to update.</param>
            <param name="addValue">
            The value which should be added in case the item doesn't already exist.
            </param>
            <param name="updateValue">
            The function to perform the update in case the item does already exist.
            </param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>Null</c>.
            </param>
            <returns>
            The value which has been added or updated, or null, if the update was not successful.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="region"/> or <paramref name="updateValue"/> is null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.AddOrUpdate(CacheManager.Core.CacheItem{`0},System.Func{`0,`0})">
            <summary>
            Adds an item to the cache or, if the item already exists, updates the item using the
            <paramref name="updateValue"/> function.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="addItem">The item which should be added or updated.</param>
            <param name="updateValue">The function to perform the update, if the item does exist.</param>
            <returns>
            The value which has been added or updated, or null, if the update was not successful.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="addItem"/> or <paramref name="updateValue"/> are null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.AddOrUpdate(CacheManager.Core.CacheItem{`0},System.Func{`0,`0},System.Int32)">
            <summary>
            Adds an item to the cache or, if the item already exists, updates the item using the
            <paramref name="updateValue"/> function.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="addItem">The item which should be added or updated.</param>
            <param name="updateValue">The function to perform the update, if the item does exist.</param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>Null</c>.
            </param>
            <returns>
            The value which has been added or updated, or null, if the update was not successful.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="addItem"/> or <paramref name="updateValue"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.Update(System.String,System.Func{`0,`0})">
            <summary>
            Updates an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
            <param name="key">The key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <returns>The updated value, or null, if the update was not successful.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> are null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.Update(System.String,System.String,System.Func{`0,`0})">
            <summary>
            Updates an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
            <param name="key">The key to update.</param>
            <param name="region">The region of the key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <returns>The updated value, or null, if the update was not successful.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="region"/> or <paramref name="updateValue"/>
            are null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.Update(System.String,System.Func{`0,`0},System.Int32)">
            <summary>
            Updates an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
            <param name="key">The key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>Null</c>.
            </param>
            <returns>The updated value, or null, if the update was not successful.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.Update(System.String,System.String,System.Func{`0,`0},System.Int32)">
            <summary>
            Updates an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
            <param name="key">The key to update.</param>
            <param name="region">The region of the key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>Null</c>.
            </param>
            <returns>The updated value, or null, if the update was not successful.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="region"/> or <paramref name="updateValue"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.TryUpdate(System.String,System.Func{`0,`0},`0@)">
            <summary>
            Tries to update an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="value">The updated value, or null, if the update was not successful.</param>
            <returns><c>True</c> if the update operation was successful, <c>False</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> are null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.TryUpdate(System.String,System.String,System.Func{`0,`0},`0@)">
            <summary>
            Tries to update an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="region">The region of the key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="value">The updated value, or null, if the update was not successful.</param>
            <returns><c>True</c> if the update operation was successful, <c>False</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="region"/> or <paramref name="updateValue"/>
            are null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.TryUpdate(System.String,System.Func{`0,`0},System.Int32,`0@)">
            <summary>
            Tries to update an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>False</c>.
            </param>
            <param name="value">The updated value, or null, if the update was not successful.</param>
            <returns><c>True</c> if the update operation was successful, <c>False</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> is null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.ICacheManager`1.TryUpdate(System.String,System.String,System.Func{`0,`0},System.Int32,`0@)">
            <summary>
            Tries to update an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="region">The region of the key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="maxRetries">
            The number of trys which should be performed in case of version conflicts.
            If the cache cannot perform an update within the number of <paramref name="maxRetries"/>,
            this method will return <c>False</c>.
            </param>
            <param name="value">The updated value, or null, if the update was not successful.</param>
            <returns><c>True</c> if the update operation was successful, <c>False</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="region"/> or <paramref name="updateValue"/> is null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="T:CacheManager.Core.ICacheManagerConfiguration">
            <summary>
            The writable configuration contract used primarrily internal only
            </summary>
        </member>
        <member name="P:CacheManager.Core.ICacheManagerConfiguration.CacheHandleConfigurations">
            <summary>
            Gets the list of cache handle configurations.
            </summary>
            <value>The list of cache handle configurations.</value>
        </member>
        <member name="P:CacheManager.Core.ICacheManagerConfiguration.Builder">
            <summary>
            Gets a <see cref="T:CacheManager.Core.ConfigurationBuilder"/> for the current <see cref="T:CacheManager.Core.CacheManagerConfiguration"/> instance
            to manipulate the configuration fluently.
            </summary>
            <returns>The <see cref="T:CacheManager.Core.ConfigurationBuilder"/>.</returns>
        </member>
        <member name="T:CacheManager.Core.IReadOnlyCacheManagerConfiguration">
            <summary>
            The readonly configuration contract for cache managers.
            </summary>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.BackPlateChannelName">
            <summary>
            Gets the back plate channel name.
            </summary>
            <value>The channel name.</value>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.BackPlateConfigurationKey">
            <summary>
            Gets the configuration key the back plate might use.
            </summary>
            <value>The key of the back plate configuration.</value>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.BackPlateType">
            <summary>
            Gets the factory method for a cache back plate.
            </summary>
            <value>The back plate activator.</value>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.BackPlateTypeArguments">
            <summary>
            Gets additional arguments which should be used instantiating the back-plate.
            </summary>
            <value>The list of arguments.</value>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.HasBackPlate">
            <summary>
            Gets a value indicating whether this instance has a back plate defined.
            </summary>
            <value>
            <c>true</c> if this instance has cache back plate; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.LoggerFactoryType">
            <summary>
            Gets the factory method for a logger factory.
            </summary>
            <value>
            The logger factory activator.
            </value>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.LoggerFactoryTypeArguments">
            <summary>
            Gets additional arguments which should be used instantiating the logger factory.
            </summary>
            <value>The list of arguments.</value>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.MaxRetries">
            <summary>
            Gets the limit of the number of retry operations per action.
            <para>Default is 50.</para>
            </summary>
            <value>The maximum retries.</value>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.Name">
            <summary>
            Gets the name of the cache.
            </summary>
            <value>The name of the cache.</value>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.RetryTimeout">
            <summary>
            Gets the number of milliseconds the cache should wait before it will retry an action.
            <para>Default is 100.</para>
            </summary>
            <value>The retry timeout.</value>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.SerializerType">
            <summary>
            Gets the factory method for a cache serializer.
            </summary>
            <value>The serializer activator.</value>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.SerializerTypeArguments">
            <summary>
            Gets additional arguments which should be used instantiating the serializer.
            </summary>
            <value>The list of arguments.</value>
        </member>
        <member name="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.UpdateMode">
            <summary>
            Gets the <see cref="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.UpdateMode"/> for the cache manager instance.
            <para>
            Drives the behavior of the cache manager how it should update the different cache
            handles it manages.
            </para>
            </summary>
            <value>The cache update mode.</value>
            <see cref="P:CacheManager.Core.IReadOnlyCacheManagerConfiguration.UpdateMode"/>
        </member>
        <member name="T:CacheManager.Core.UpdateItemResultState">
            <summary>
            Represents that state of an update operation.
            </summary>
        </member>
        <member name="F:CacheManager.Core.UpdateItemResultState.Success">
            <summary>
            The state represents a successful update operation.
            </summary>
        </member>
        <member name="F:CacheManager.Core.UpdateItemResultState.TooManyRetries">
            <summary>
            The state represents a failed attempt. The retries limit had been reached.
            </summary>
        </member>
        <member name="F:CacheManager.Core.UpdateItemResultState.ItemDidNotExist">
            <summary>
            The state represents a failed attempt. The cache item did not exist, so no update could
            be made.
            </summary>
        </member>
        <member name="T:CacheManager.Core.UpdateItemResult">
            <summary>
            Helper class to create correct instances.
            </summary>
        </member>
        <member name="M:CacheManager.Core.UpdateItemResult.ForItemDidNotExist``1">
            <summary>
            Creates a new instance of the <see cref="T:CacheManager.Core.UpdateItemResult`1"/> class with
            properties typical for the case where the cache item did not exist for an update operation.
            </summary>
            <typeparam name="TCacheValue">The type of the cache value.</typeparam>
            <returns>The item result.</returns>
        </member>
        <member name="M:CacheManager.Core.UpdateItemResult.ForSuccess``1(``0,System.Boolean,System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:CacheManager.Core.UpdateItemResult`1"/> class with
            properties typical for a successful update operation.
            </summary>
            <typeparam name="TCacheValue">The type of the cache value.</typeparam>
            <param name="value">The value.</param>
            <param name="conflictOccurred">Set to <c>true</c> if a conflict occurred.</param>
            <param name="triesNeeded">The tries needed.</param>
            <returns>The item result.</returns>
        </member>
        <member name="M:CacheManager.Core.UpdateItemResult.ForTooManyRetries``1(System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:CacheManager.Core.UpdateItemResult`1"/> class with
            properties typical for an update operation which failed because it exceeded the limit of tries.
            </summary>
            <typeparam name="TCacheValue">The type of the cache value.</typeparam>
            <param name="triesNeeded">The tries needed.</param>
            <returns>The item result.</returns>
        </member>
        <member name="T:CacheManager.Core.UpdateItemResult`1">
            <summary>
            Used by cache handle implementations to let the cache manager know what happened during an
            update operation.
            </summary>
            <typeparam name="TCacheValue">The type of the cache value.</typeparam>
        </member>
        <member name="P:CacheManager.Core.UpdateItemResult`1.NumberOfTriesNeeded">
            <summary>
            Gets the number of tries the cache needed to update the item.
            </summary>
            <value>The number of retries needed.</value>
        </member>
        <member name="P:CacheManager.Core.UpdateItemResult`1.UpdateState">
            <summary>
            Gets a value indicating whether the update operation was successful or not.
            </summary>
            <value>The current <see cref="T:CacheManager.Core.UpdateItemResultState"/>.</value>
        </member>
        <member name="P:CacheManager.Core.UpdateItemResult`1.Value">
            <summary>
            Gets the updated value.
            </summary>
            <value>The updated value.</value>
        </member>
        <member name="P:CacheManager.Core.UpdateItemResult`1.VersionConflictOccurred">
            <summary>
            Gets a value indicating whether a version conflict occurred during an update operation.
            </summary>
            <value><c>true</c> if a version conflict occurred; otherwise, <c>false</c>.</value>
        </member>
        <member name="T:CacheManager.Core.ConfigurationBuilder">
            <summary>
            Helper class to load cache manager configurations from file or to build new configurations
            in a fluent way.
            <para>
            This only loads configurations. To build a cache manager instance, use <c>CacheFactory</c>
            and pass in the configuration. Or use the <c>Build</c> methods of <c>CacheFactory</c>!
            </para>
            </summary>
            <see cref="T:CacheManager.Core.CacheFactory"/>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilder.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.ConfigurationBuilder"/> class
            which provides fluent configuration methods.
            </summary>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilder.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.ConfigurationBuilder"/> class
            which provides fluent configuration methods.
            </summary>
            <param name="name">The name of the cache manager.</param>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilder.#ctor(CacheManager.Core.CacheManagerConfiguration)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.ConfigurationBuilder"/> class
            which provides fluent configuration methods.
            Creates a builder which allows to modify the existing <paramref name="configuration"/>.
            </summary>
            <param name="configuration">The configuration the builder should be instantiated for.</param>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilder.#ctor(System.String,CacheManager.Core.CacheManagerConfiguration)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.ConfigurationBuilder"/> class
            which provides fluent configuration methods.
            Creates a builder which allows to modify the existing <paramref name="configuration"/>.
            </summary>
            <param name="name">The name of the cache manager.</param>
            <param name="configuration">The configuration the builder should be instantiated for.</param>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilder.BuildConfiguration(System.Action{CacheManager.Core.ConfigurationBuilderCachePart})">
            <summary>
            Builds a <see cref="T:CacheManager.Core.CacheManagerConfiguration"/> which can be used to create a new cache
            manager instance.
            <para>
            Pass the configuration to <see cref="M:CacheManager.Core.CacheFactory.FromConfiguration``1(CacheManager.Core.CacheManagerConfiguration)"/>
            to create a valid cache manager.
            </para>
            </summary>
            <param name="settings">
            The configuration settings to define the cache handles and other properties.
            </param>
            <returns>The <see cref="T:CacheManager.Core.CacheManagerConfiguration"/>.</returns>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilder.BuildConfiguration(System.String,System.Action{CacheManager.Core.ConfigurationBuilderCachePart})">
            <summary>
            Builds a <see cref="T:CacheManager.Core.CacheManagerConfiguration"/> which can be used to create a new cache
            manager instance.
            <para>
            Pass the configuration to <see cref="M:CacheManager.Core.CacheFactory.FromConfiguration``1(CacheManager.Core.CacheManagerConfiguration)"/>
            to create a valid cache manager.
            </para>
            </summary>
            <param name="name">The name of the cache manager.</param>
            <param name="settings">
            The configuration settings to define the cache handles and other properties.
            </param>
            <returns>The <see cref="T:CacheManager.Core.CacheManagerConfiguration"/>.</returns>
        </member>
        <member name="T:CacheManager.Core.ConfigurationBuilderCacheHandlePart">
            <summary>
            Used to build a <c>CacheHandleConfiguration</c>.
            </summary>
            <see cref="T:CacheManager.Core.CacheManagerConfiguration"/>
        </member>
        <member name="P:CacheManager.Core.ConfigurationBuilderCacheHandlePart.And">
            <summary>
            Gets the parent builder part to add another cache configuration. Can be used to add
            multiple cache handles.
            </summary>
            <value>The parent builder part.</value>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCacheHandlePart.Build">
            <summary>
            Hands back the new <see cref="T:CacheManager.Core.CacheManagerConfiguration"/> instance.
            </summary>
            <returns>The <see cref="T:CacheManager.Core.CacheManagerConfiguration"/>.</returns>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCacheHandlePart.DisablePerformanceCounters">
            <summary>
            Disables performance counters for this cache handle.
            </summary>
            <returns>The builder part.</returns>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCacheHandlePart.DisableStatistics">
            <summary>
            Disables statistic gathering for this cache handle.
            <para>This also disables performance counters as statistics are required for the counters.</para>
            </summary>
            <returns>The builder part.</returns>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCacheHandlePart.EnablePerformanceCounters">
            <summary>
            Enables performance counters for this cache handle.
            <para>This also enables statistics, as this is required for performance counters.</para>
            </summary>
            <returns>The builder part.</returns>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCacheHandlePart.EnableStatistics">
            <summary>
            Enables statistic gathering for this cache handle.
            <para>The statistics can be accessed via cacheHandle.Stats.GetStatistic.</para>
            </summary>
            <returns>The builder part.</returns>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCacheHandlePart.WithExpiration(CacheManager.Core.ExpirationMode,System.TimeSpan)">
            <summary>
            Sets the expiration mode and timeout of the cache handle.
            </summary>
            <param name="expirationMode">The expiration mode.</param>
            <param name="timeout">The timeout.</param>
            <returns>The builder part.</returns>
            <exception cref="T:System.InvalidOperationException">
            If expiration mode is not set to 'None', timeout cannot be zero.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            Thrown if expiration mode is not 'None' and timeout is zero.
            </exception>
            <seealso cref="T:CacheManager.Core.ExpirationMode"/>
        </member>
        <member name="T:CacheManager.Core.ConfigurationBuilderCachePart">
            <summary>
            Used to build a <c>CacheManagerConfiguration</c>.
            </summary>
            <see cref="T:CacheManager.Core.CacheManagerConfiguration"/>
        </member>
        <member name="P:CacheManager.Core.ConfigurationBuilderCachePart.Configuration">
            <summary>
            Gets the configuration.
            </summary>
            <value>The configuration.</value>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.WithBackPlate(System.Type,System.String,System.Object[])">
            <summary>
            Configures the back plate for the cache manager.
            <para>
            This is an optional feature. If specified, see the documentation for the
            <paramref name="backPlateType"/>. The <paramref name="configurationKey"/> might be used to
            reference another configuration item.
            </para>
            <para>
            If a back plate is defined, at least one cache handle must be marked as back plate
            source. The cache manager then will try to synchronize multiple instances of the same configuration.
            </para>
            </summary>
            <param name="backPlateType">The type of the back plate implementation.</param>
            <param name="configurationKey">The name.</param>
            <param name="args">Additional arguments the type might need to get initialized.</param>
            <returns>The builder instance.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="configurationKey"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.WithBackPlate(System.Type,System.String,System.String,System.Object[])">
            <summary>
            Configures the back plate for the cache manager.
            <para>
            This is an optional feature. If specified, see the documentation for the
            <paramref name="backPlateType"/>. The <paramref name="configurationKey"/> might be used to
            reference another configuration item.
            </para>
            <para>
            If a back plate is defined, at least one cache handle must be marked as back plate
            source. The cache manager then will try to synchronize multiple instances of the same configuration.
            </para>
            </summary>
            <param name="backPlateType">The type of the back plate implementation.</param>
            <param name="configurationKey">The configuration key.</param>
            <param name="channelName">The back plate channel name.</param>
            <param name="args">Additional arguments the type might need to get initialized.</param>
            <returns>The builder instance.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="configurationKey"/> or <paramref name="channelName"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.WithDictionaryHandle">
            <summary>
            Adds a cache dictionary cache handle to the cache manager.
            </summary>
            <returns>The builder part.</returns>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.WithDictionaryHandle(System.String)">
            <summary>
            Adds a cache dictionary cache handle to the cache manager.
            </summary>
            <returns>The builder part.</returns>
            <param name="handleName">The name of the cache handle.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="handleName"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.WithHandle(System.Type,System.String,System.Boolean)">
            <summary>
            Adds a cache handle with the given <c>Type</c> and name.
            The type must be an open generic.
            </summary>
            <param name="cacheHandleBaseType">The cache handle type.</param>
            <param name="handleName">The name to be used for the cache handle.</param>
            <param name="isBackPlateSource">
            Set this to true if this cache handle should be the source of the back plate.
            <para>This setting will be ignored if no back plate is configured.</para>
            </param>
            <returns>The builder part.</returns>
            <exception cref="T:System.ArgumentNullException">If handleName is null.</exception>
            <exception cref="T:System.InvalidOperationException">
            Only one cache handle can be the backplate's source.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            Thrown if handleName or cacheHandleBaseType are null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.WithHandle(System.Type,System.String)">
            <summary>
            Adds a cache handle with the given <c>Type</c> and name.
            The type must be an open generic.
            </summary>
            <param name="cacheHandleBaseType">The cache handle type.</param>
            <param name="handleName">The name to be used for the cache handle.</param>
            <returns>The builder part.</returns>
            <exception cref="T:System.ArgumentNullException">
            Thrown if handleName or cacheHandleBaseType are null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.WithHandle(System.Type)">
            <summary>
            Adds a cache handle with the given <c>Type</c>.
            The type must be an open generic.
            </summary>
            <param name="cacheHandleBaseType">The cache handle type.</param>
            <returns>The builder part.</returns>
            <exception cref="T:System.ArgumentNullException">
            Thrown if handleName or cacheHandleBaseType are null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.WithMaxRetries(System.Int32)">
            <summary>
            Sets the maximum number of retries per action.
            <para>Default is 50.</para>
            <para>
            Not every cache handle implements this, usually only distributed caches will use it.
            </para>
            </summary>
            <param name="retries">The maximum number of retries.</param>
            <returns>The configuration builder.</returns>
            <exception cref="T:System.InvalidOperationException">
            Maximum number of retries must be greater than 0.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.WithRetryTimeout(System.Int32)">
            <summary>
            Sets the timeout between each retry of an action in milliseconds.
            <para>Default is 100.</para>
            <para>
            Not every cache handle implements this, usually only distributed caches will use it.
            </para>
            </summary>
            <param name="timeoutMillis">The timeout in milliseconds.</param>
            <returns>The configuration builder.</returns>
            <exception cref="T:System.InvalidOperationException">
            Retry timeout must be greater than or equal to zero.
            </exception>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.WithUpdateMode(CacheManager.Core.CacheUpdateMode)">
            <summary>
            Sets the update mode of the cache.
            <para>If nothing is set, the default will be <c>CacheUpdateMode.None</c>.</para>
            </summary>
            <param name="updateMode">The update mode.</param>
            <returns>The builder part.</returns>
            <seealso cref="T:CacheManager.Core.CacheUpdateMode"/>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.WithSerializer(System.Type,System.Object[])">
            <summary>
            Sets the serializer which should be used to serialize cache items.
            </summary>
            <param name="serializerType">The type of the serializer.</param>
            <param name="args">Additional arguments the type might need to get initialized.</param>
            <returns>The builder part.</returns>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.WithLogging(System.Type,System.Object[])">
            <summary>
            Enables logging by setting the <see cref="T:CacheManager.Core.Logging.ILoggerFactory"/> for the cache manager instance.
            </summary>
            <param name="loggerFactoryType">The type of the logger factory.</param>
            <param name="args">Additional arguments the type might need to get initialized.</param>
            <returns>The builder part.</returns>
        </member>
        <member name="M:CacheManager.Core.ConfigurationBuilderCachePart.Build">
            <summary>
            Hands back the new <see cref="T:CacheManager.Core.CacheManagerConfiguration"/> instance.
            </summary>
            <returns>The <see cref="T:CacheManager.Core.CacheManagerConfiguration"/>.</returns>
        </member>
        <member name="T:CacheManager.Core.Internal.BackPlateAction">
            <summary>
            Defines the possible actions of the back plate message.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.BackPlateAction.Removed">
            <summary>
            The remove action.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.BackPlateAction.Changed">
            <summary>
            The changed action.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.BackPlateAction.Clear">
            <summary>
            The clear action.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.BackPlateAction.ClearRegion">
            <summary>
            The clear region action.
            </summary>
        </member>
        <member name="T:CacheManager.Core.Internal.BackPlateMessage">
            <summary>
            Implements a simple message which can be send as a string to the server.
            </summary>
        </member>
        <member name="P:CacheManager.Core.Internal.BackPlateMessage.Action">
            <summary>
            Gets or sets the action.
            </summary>
            <value>The action.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.BackPlateMessage.Key">
            <summary>
            Gets or sets the key.
            </summary>
            <value>The key.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.BackPlateMessage.OwnerIdentity">
            <summary>
            Gets or sets the owner identity.
            </summary>
            <value>The owner identity.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.BackPlateMessage.Region">
            <summary>
            Gets or sets the region.
            </summary>
            <value>The region.</value>
        </member>
        <member name="M:CacheManager.Core.Internal.BackPlateMessage.Deserialize(System.String)">
            <summary>
            Deserializes the specified message.
            </summary>
            <param name="message">The message.</param>
            <returns>
            The <see cref="T:CacheManager.Core.Internal.BackPlateMessage" /> instance.
            </returns>
            <exception cref="T:System.ArgumentException">Parameter message cannot be null or empty.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BackPlateMessage.ForChanged(System.String,System.String)">
            <summary>
            Creates a new <see cref="T:CacheManager.Core.Internal.BackPlateMessage"/> for the changed action.
            </summary>
            <param name="owner">The owner.</param>
            <param name="key">The key.</param>
            <returns>The new <see cref="T:CacheManager.Core.Internal.BackPlateMessage"/> instance.</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.BackPlateMessage.ForChanged(System.String,System.String,System.String)">
            <summary>
            Creates a new <see cref="T:CacheManager.Core.Internal.BackPlateMessage"/> for the changed action.
            </summary>
            <param name="owner">The owner.</param>
            <param name="key">The key.</param>
            <param name="region">The region.</param>
            <returns>The new <see cref="T:CacheManager.Core.Internal.BackPlateMessage"/> instance.</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.BackPlateMessage.ForClear(System.String)">
            <summary>
            Creates a new <see cref="T:CacheManager.Core.Internal.BackPlateMessage"/> for the clear action.
            </summary>
            <param name="owner">The owner.</param>
            <returns>The new <see cref="T:CacheManager.Core.Internal.BackPlateMessage"/> instance.</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.BackPlateMessage.ForClearRegion(System.String,System.String)">
            <summary>
            Creates a new <see cref="T:CacheManager.Core.Internal.BackPlateMessage"/> for the clear region action.
            </summary>
            <param name="owner">The owner.</param>
            <param name="region">The region.</param>
            <returns>The new <see cref="T:CacheManager.Core.Internal.BackPlateMessage"/> instance.</returns>
            <exception cref="T:System.ArgumentNullException">If region is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BackPlateMessage.ForRemoved(System.String,System.String)">
            <summary>
            Creates a new <see cref="T:CacheManager.Core.Internal.BackPlateMessage"/> for the removed action.
            </summary>
            <param name="owner">The owner.</param>
            <param name="key">The key.</param>
            <returns>The new <see cref="T:CacheManager.Core.Internal.BackPlateMessage"/> instance.</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.BackPlateMessage.ForRemoved(System.String,System.String,System.String)">
            <summary>
            Creates a new <see cref="T:CacheManager.Core.Internal.BackPlateMessage"/> for the removed action.
            </summary>
            <param name="owner">The owner.</param>
            <param name="key">The key.</param>
            <param name="region">The region.</param>
            <returns>The new <see cref="T:CacheManager.Core.Internal.BackPlateMessage"/> instance.</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.BackPlateMessage.Serialize">
            <summary>
            Serializes this instance.
            </summary>
            <returns>The string representing this message.</returns>
        </member>
        <member name="T:CacheManager.Core.Internal.BaseCache`1">
            <summary>
            The BaseCache class implements the overall logic of this cache library and delegates the
            concrete implementation of how e.g. add, get or remove should work to a derived class.
            <para>
            To use this base class simply override the abstract methods for Add, Get, Put and Remove.
            <br/> All other methods defined by <c>ICache</c> will be delegated to those methods.
            </para>
            </summary>
            <typeparam name="TCacheValue">The type of the cache value.</typeparam>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.Internal.BaseCache`1"/> class.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:CacheManager.Core.Internal.BaseCache`1"/> class.
            </summary>
        </member>
        <member name="P:CacheManager.Core.Internal.BaseCache`1.Logger">
            <summary>
            Gets the logger.
            </summary>
            <value>The logger instance.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.BaseCache`1.Disposed">
            <summary>
            Gets or sets a value indicating whether this <see cref="T:CacheManager.Core.Internal.BaseCache`1"/> is disposed.
            </summary>
            <value><c>true</c> if disposed; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.BaseCache`1.Disposing">
            <summary>
            Gets or sets a value indicating whether this <see cref="T:CacheManager.Core.Internal.BaseCache`1"/> is disposing.
            </summary>
            <value><c>true</c> if disposing; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.BaseCache`1.Item(System.String)">
            <summary>
            Gets or sets a value for the specified key. The indexer is identical to the
            corresponding <see cref="M:CacheManager.Core.Internal.BaseCache`1.Put(System.String,`0)"/> and <see cref="M:CacheManager.Core.Internal.BaseCache`1.Get(System.String)"/> calls.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>The value being stored in the cache for the given <paramref name="key"/>.</returns>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="key"/> is null.</exception>
        </member>
        <member name="P:CacheManager.Core.Internal.BaseCache`1.Item(System.String,System.String)">
            <summary>
            Gets or sets a value for the specified key and region. The indexer is identical to the
            corresponding <see cref="M:CacheManager.Core.Internal.BaseCache`1.Put(System.String,`0,System.String)"/> and
            <see cref="M:CacheManager.Core.Internal.BaseCache`1.Get(System.String,System.String)"/> calls.
            <para>
            With <paramref name="region"/> specified, the key will <b>not</b> be found in the global cache.
            </para>
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>
            The value being stored in the cache for the given <paramref name="key"/> and <paramref name="region"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Add(System.String,`0)">
            <summary>
            Adds a value for the specified key to the cache.
            <para>
            The <c>Add</c> method will <b>not</b> be successful if the specified
            <paramref name="key"/> already exists within the cache!
            </para>
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="value">The value which should be cached.</param>
            <returns>
            <c>true</c> if the key was not already added to the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="value"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Add(System.String,`0,System.String)">
            <summary>
            Adds a value for the specified key and region to the cache.
            <para>
            The <c>Add</c> method will <b>not</b> be successful if the specified
            <paramref name="key"/> already exists within the cache!
            </para>
            <para>
            With <paramref name="region"/> specified, the key will <b>not</b> be found in the global cache.
            </para>
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="value">The value which should be cached.</param>
            <param name="region">The cache region.</param>
            <returns>
            <c>true</c> if the key was not already added to the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/>, <paramref name="value"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Add(CacheManager.Core.CacheItem{`0})">
            <summary>
            Adds the specified <c>CacheItem</c> to the cache.
            <para>
            Use this overload to overrule the configured expiration settings of the cache and to
            define a custom expiration for this <paramref name="item"/> only.
            </para>
            <para>
            The <c>Add</c> method will <b>not</b> be successful if the specified
            <paramref name="item"/> already exists within the cache!
            </para>
            </summary>
            <param name="item">The <c>CacheItem</c> to be added to the cache.</param>
            <returns>
            <c>true</c> if the key was not already added to the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="item"/> or the item's key or value is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Clear">
            <summary>
            Clears this cache, removing all items in the base cache and all regions.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.ClearRegion(System.String)">
            <summary>
            Clears the cache region, removing all items from the specified <paramref name="region"/> only.
            </summary>
            <param name="region">The cache region.</param>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="region"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting
            unmanaged resources.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Expire(System.String,CacheManager.Core.ExpirationMode,System.TimeSpan)">
            <summary>
            Changes the expiration <paramref name="mode"/> and <paramref name="timeout"/> for the
            given <paramref name="key"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="mode">The expiration mode.</param>
            <param name="timeout">The expiration timeout.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Expire(System.String,System.String,CacheManager.Core.ExpirationMode,System.TimeSpan)">
            <summary>
            Changes the expiration <paramref name="mode"/> and <paramref name="timeout"/> for the
            given <paramref name="key"/> in <paramref name="region"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="region">The cache region.</param>
            <param name="mode">The expiration mode.</param>
            <param name="timeout">The expiration timeout.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Expire(System.String,System.DateTimeOffset)">
            <summary>
            Sets an absolute expiration date for the cache <paramref name="key"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="absoluteExpiration">
            The expiration date. The value must be greater than zero.
            </param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Expire(System.String,System.String,System.DateTimeOffset)">
            <summary>
            Sets an absolute expiration date for the cache <paramref name="key"/> in <paramref name="region"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="region">The cache region.</param>
            <param name="absoluteExpiration">
            The expiration date. The value must be greater than zero.
            </param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Expire(System.String,System.TimeSpan)">
            <summary>
            Sets a sliding expiration date for the cache <paramref name="key"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="slidingExpiration">
            The expiration timeout. The value must be greater than zero.
            </param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Expire(System.String,System.String,System.TimeSpan)">
            <summary>
            Sets a sliding expiration date for the cache <paramref name="key"/> in <paramref name="region"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="region">The cache region.</param>
            <param name="slidingExpiration">
            The expiration timeout. The value must be greater than zero.
            </param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Get(System.String)">
            <summary>
            Gets a value for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>The value being stored in the cache for the given <paramref name="key"/>.</returns>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Get(System.String,System.String)">
            <summary>
            Gets a value for the specified key and region.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>
            The value being stored in the cache for the given <paramref name="key"/> and <paramref name="region"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Get``1(System.String)">
            <summary>
            Gets a value for the specified key and will cast it to the specified type.
            </summary>
            <typeparam name="TOut">The type the value is converted and returned.</typeparam>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>The value being stored in the cache for the given <paramref name="key"/>.</returns>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="key"/> is null.</exception>
            <exception cref="T:System.InvalidCastException">
            If no explicit cast is defined from <c>TCacheValue</c> to <c>TOut</c>.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Get``1(System.String,System.String)">
            <summary>
            Gets a value for the specified key and region and will cast it to the specified type.
            </summary>
            <typeparam name="TOut">The type the cached value should be converted to.</typeparam>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>
            The value being stored in the cache for the given <paramref name="key"/> and <paramref name="region"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="region"/> is null.
            </exception>
            <exception cref="T:System.InvalidCastException">
            If no explicit cast is defined from <c>TCacheValue</c> to <c>TOut</c>.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.GetCacheItem(System.String)">
            <summary>
            Gets the <c>CacheItem</c> for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>The <c>CacheItem</c>.</returns>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.GetCacheItem(System.String,System.String)">
            <summary>
            Gets the <c>CacheItem</c> for the specified key and region.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>The <c>CacheItem</c>.</returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Put(System.String,`0)">
            <summary>
            Puts a value for the specified key into the cache.
            <para>
            If the <paramref name="key"/> already exists within the cache, the existing value will
            be replaced with the new <paramref name="value"/>.
            </para>
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="value">The value which should be cached.</param>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="value"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Put(System.String,`0,System.String)">
            <summary>
            Puts a value for the specified key and region into the cache.
            <para>
            If the <paramref name="key"/> already exists within the cache, the existing value will
            be replaced with the new <paramref name="value"/>.
            </para>
            <para>
            With <paramref name="region"/> specified, the key will <b>not</b> be found in the global cache.
            </para>
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="value">The value which should be cached.</param>
            <param name="region">The cache region.</param>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/>, <paramref name="value"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Put(CacheManager.Core.CacheItem{`0})">
            <summary>
            Puts the specified <c>CacheItem</c> into the cache.
            <para>
            If the <paramref name="item"/> already exists within the cache, the existing item will
            be replaced with the new <paramref name="item"/>.
            </para>
            <para>
            Use this overload to overrule the configured expiration settings of the cache and to
            define a custom expiration for this <paramref name="item"/> only.
            </para>
            </summary>
            <param name="item">The <c>CacheItem</c> to be cached.</param>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="item"/> or the item's key or value is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Remove(System.String)">
            <summary>
            Removes a value from the cache for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>
            <c>true</c> if the key was found and removed from the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">If the <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Remove(System.String,System.String)">
            <summary>
            Removes a value from the cache for the specified key and region.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>
            <c>true</c> if the key was found and removed from the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            If the <paramref name="key"/> or <paramref name="region"/> is null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.RemoveExpiration(System.String)">
            <summary>
            Removes any expiration settings, previously defined, for the cache <paramref name="key"/>.
            </summary>
            <param name="key">The cache key.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.RemoveExpiration(System.String,System.String)">
            <summary>
            Removes any expiration settings, previously defined, for the cache
            <paramref name="key"/> in <paramref name="region"/>.
            </summary>
            <param name="key">The cache key.</param>
            <param name="region">The cache region.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.AddInternal(CacheManager.Core.CacheItem{`0})">
            <summary>
            Adds a value to the cache.
            </summary>
            <param name="item">The <c>CacheItem</c> to be added to the cache.</param>
            <returns>
            <c>true</c> if the key was not already added to the cache, <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.PutInternal(CacheManager.Core.CacheItem{`0})">
            <summary>
            Puts a value into the cache.
            </summary>
            <param name="item">The <c>CacheItem</c> to be added to the cache.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="disposeManaged">
            <c>true</c> to release both managed and unmanaged resources; <c>false</c> to release
            only unmanaged resources.
            </param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.GetCacheItemInternal(System.String)">
            <summary>
            Gets a <c>CacheItem</c> for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>The <c>CacheItem</c>.</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.GetCacheItemInternal(System.String,System.String)">
            <summary>
            Gets a <c>CacheItem</c> for the specified key and region.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>The <c>CacheItem</c>.</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.RemoveInternal(System.String)">
            <summary>
            Removes a value from the cache for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>
            <c>true</c> if the key was found and removed from the cache, <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.RemoveInternal(System.String,System.String)">
            <summary>
            Removes a value from the cache for the specified key and region.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>
            <c>true</c> if the key was found and removed from the cache, <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.CheckDisposed">
            <summary>
            Checks if the instance is disposed.
            </summary>
            <exception cref="T:System.ObjectDisposedException">If the instance is disposed.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCache`1.GetCasted``1(System.Object)">
            <summary>
            Casts the value to <c>TOut</c>.
            </summary>
            <typeparam name="TOut">The type.</typeparam>
            <param name="value">The value.</param>
            <returns>The casted value.</returns>
        </member>
        <member name="T:CacheManager.Core.Internal.BaseCacheHandle`1">
            <summary>
            The <c>BaseCacheHandle</c> implements all the logic which might be common for all the cache
            handles. It abstracts the <see cref="T:CacheManager.Core.ICache`1"/> interface and defines new properties and
            methods the implementer must use.
            <para>Actually it is not advisable to not use <see cref="T:CacheManager.Core.Internal.BaseCacheHandle`1"/>.</para>
            </summary>
            <typeparam name="TCacheValue">The type of the cache value.</typeparam>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCacheHandle`1.#ctor(CacheManager.Core.CacheManagerConfiguration,CacheManager.Core.CacheHandleConfiguration)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.Internal.BaseCacheHandle`1"/> class.
            </summary>
            <param name="managerConfiguration">The manager's configuration.</param>
            <param name="configuration">The configuration.</param>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="managerConfiguration"/> or <paramref name="configuration"/> are null.
            </exception>
            <exception cref="T:System.ArgumentException">If <paramref name="configuration"/> name is empty.</exception>
        </member>
        <member name="P:CacheManager.Core.Internal.BaseCacheHandle`1.Configuration">
            <summary>
            Gets the cache handle configuration.
            </summary>
            <value>The configuration.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.BaseCacheHandle`1.Count">
            <summary>
            Gets the number of items the cache handle currently maintains.
            </summary>
            <value>The count.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.BaseCacheHandle`1.Stats">
            <summary>
            Gets the cache stats object.
            </summary>
            <value>The stats.</value>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCacheHandle`1.Expire(System.String,CacheManager.Core.ExpirationMode,System.TimeSpan)">
            <summary>
            Changes the expiration <paramref name="mode" /> and <paramref name="timeout" /> for the
            given <paramref name="key" />.
            </summary>
            <param name="key">The cache key.</param>
            <param name="mode">The expiration mode.</param>
            <param name="timeout">The expiration timeout.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCacheHandle`1.Expire(System.String,System.String,CacheManager.Core.ExpirationMode,System.TimeSpan)">
            <summary>
            Changes the expiration <paramref name="mode" /> and <paramref name="timeout" /> for the
            given <paramref name="key" />.
            </summary>
            <param name="key">The cache key.</param>
            <param name="region">The cache region.</param>
            <param name="mode">The expiration mode.</param>
            <param name="timeout">The expiration timeout.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCacheHandle`1.Update(System.String,System.Func{`0,`0},System.Int32)">
            <summary>
            Updates an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="maxRetries">The number of tries.</param>
            <returns>The update result which is interpreted by the cache manager.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/> or <paramref name="updateValue"/> is null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCacheHandle`1.Update(System.String,System.String,System.Func{`0,`0},System.Int32)">
            <summary>
            Updates an existing key in the cache.
            <para>
            The cache manager will make sure the update will always happen on the most recent version.
            </para>
            <para>
            If version conflicts occur, if for example multiple cache clients try to write the same
            key, and during the update process, someone else changed the value for the key, the
            cache manager will retry the operation.
            </para>
            <para>
            The <paramref name="updateValue"/> function will get invoked on each retry with the most
            recent value which is stored in cache.
            </para>
            </summary>
            <param name="key">The key to update.</param>
            <param name="region">The cache region.</param>
            <param name="updateValue">The function to perform the update.</param>
            <param name="maxRetries">The number of tries.</param>
            <returns>The update result which is interpreted by the cache manager.</returns>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="key"/>, <paramref name="region"/> or <paramref name="updateValue"/> is null.
            </exception>
            <remarks>
            If the cache does not use a distributed cache system. Update is doing exactly the same
            as Get plus Put.
            </remarks>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCacheHandle`1.AddInternal(CacheManager.Core.CacheItem{`0})">
            <summary>
            Adds a value to the cache.
            </summary>
            <param name="item">The <c>CacheItem</c> to be added to the cache.</param>
            <returns>
            <c>true</c> if the key was not already added to the cache, <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCacheHandle`1.PutInternal(CacheManager.Core.CacheItem{`0})">
            <summary>
            Puts the <paramref name="item"/> into the cache. If the item exists it will get updated
            with the new value. If the item doesn't exist, the item will be added to the cache.
            </summary>
            <param name="item">The <c>CacheItem</c> to be added to the cache.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCacheHandle`1.AddInternalPrepared(CacheManager.Core.CacheItem{`0})">
            <summary>
            Adds a value to the cache.
            </summary>
            <param name="item">The <c>CacheItem</c> to be added to the cache.</param>
            <returns>
            <c>true</c> if the key was not already added to the cache, <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCacheHandle`1.Dispose(System.Boolean)">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting
            unmanaged resources.
            </summary>
            <param name="disposeManaged">Indicator if managed resources should be released.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCacheHandle`1.GetItemExpiration(CacheManager.Core.CacheItem{`0})">
            <summary>
            Gets the item expiration.
            </summary>
            <param name="item">The item.</param>
            <returns>Returns the updated cache item.</returns>
            <exception cref="T:System.ArgumentNullException">If item is null.</exception>
            <exception cref="T:System.InvalidOperationException">
            If expiration mode is defined without timeout.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.BaseCacheHandle`1.PutInternalPrepared(CacheManager.Core.CacheItem{`0})">
            <summary>
            Puts the <paramref name="item"/> into the cache. If the item exists it will get updated
            with the new value. If the item doesn't exist, the item will be added to the cache.
            </summary>
            <param name="item">The <c>CacheItem</c> to be added to the cache.</param>
        </member>
        <member name="T:CacheManager.Core.Internal.CacheBackPlate">
            <summary>
            In CacheManager, a cache back plate is used to keep in process and distributed caches in
            sync. <br/> If the cache manager runs inside multiple nodes or applications accessing the
            same distributed cache, and an in process cache is configured to be in front of the
            distributed cache handle. All Get calls will hit the in process cache. <br/> Now when an
            item gets removed for example by one client, all other clients still have that cache item
            available in the in process cache. <br/> This could lead to errors and unexpected behavior,
            therefore a cache back plate will send a message to all other cache clients to also remove
            that item.
            <para>
            The same mechanism will apply to any Update, Put, Remove, Clear or ClearRegion call of the cache.
            </para>
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.#ctor(CacheManager.Core.CacheManagerConfiguration)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.Internal.CacheBackPlate" /> class.
            </summary>
            <param name="configuration">The cache manager configuration.</param>
            <exception cref="T:System.ArgumentNullException">If configuration is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:CacheManager.Core.Internal.CacheBackPlate"/> class.
            </summary>
        </member>
        <member name="P:CacheManager.Core.Internal.CacheBackPlate.CacheConfiguration">
            <summary>
            Gets the cache configuration.
            </summary>
            <value>
            The cache configuration.
            </value>
        </member>
        <member name="P:CacheManager.Core.Internal.CacheBackPlate.ConfigurationKey">
            <summary>
            Gets the name of the configuration to be used.
            <para>The key might be used to find cache vendor specific configuration.</para>
            </summary>
            <value>The configuration key.</value>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting
            unmanaged resources.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.NotifyChange(System.String)">
            <summary>
            Notifies other cache clients about a changed cache key.
            </summary>
            <param name="key">The key.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.NotifyChange(System.String,System.String)">
            <summary>
            Notifies other cache clients about a changed cache key.
            </summary>
            <param name="key">The key.</param>
            <param name="region">The region.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.NotifyClear">
            <summary>
            Notifies other cache clients about a cache clear.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.NotifyClearRegion(System.String)">
            <summary>
            Notifies other cache clients about a cache clear region call.
            </summary>
            <param name="region">The region.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.NotifyRemove(System.String)">
            <summary>
            Notifies other cache clients about a removed cache key.
            </summary>
            <param name="key">The key.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.NotifyRemove(System.String,System.String)">
            <summary>
            Notifies other cache clients about a removed cache key.
            </summary>
            <param name="key">The key.</param>
            <param name="region">The region.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.OnChange(System.String)">
            <summary>
            Called when another client changed a cache key.
            </summary>
            <param name="key">The key.</param>
            <exception cref="T:System.ArgumentNullException">If key is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.OnChange(System.String,System.String)">
            <summary>
            Called when another client changed a cache key.
            </summary>
            <param name="key">The key.</param>
            <param name="region">The region.</param>
            <exception cref="T:System.ArgumentNullException">If key or region are null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.OnClear">
            <summary>
            Called when another client cleared the cache.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.OnClearRegion(System.String)">
            <summary>
            Called when another client cleared a region.
            </summary>
            <param name="region">The region.</param>
            <exception cref="T:System.ArgumentNullException">If region is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.OnRemove(System.String)">
            <summary>
            Called when another client removed a cache key.
            </summary>
            <param name="key">The key.</param>
            <exception cref="T:System.ArgumentNullException">If key is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.OnRemove(System.String,System.String)">
            <summary>
            Called when another client removed a cache key.
            </summary>
            <param name="key">The key.</param>
            <param name="region">The region.</param>
            <exception cref="T:System.ArgumentNullException">If key or region are null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.SubscribeChanged(System.Action{System.String})">
            <summary>
            The cache manager will subscribe to the back plate to get triggered whenever another
            client changed a cache key.
            </summary>
            <param name="change">The change.</param>
            <exception cref="T:System.ArgumentNullException">Id change is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.SubscribeChanged(System.Action{System.String,System.String})">
            <summary>
            The cache manager will subscribe to the back plate to get triggered whenever another
            client changed a cache key.
            </summary>
            <param name="change">The change.</param>
            <exception cref="T:System.ArgumentNullException">If change is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.SubscribeClear(System.Action)">
            <summary>
            Subscribes the clear.The cache manager will subscribe to the back plate to get triggered
            whenever another client cleared the cache.
            </summary>
            <param name="clear">The clear.</param>
            <exception cref="T:System.ArgumentNullException">If clear is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.SubscribeClearRegion(System.Action{System.String})">
            <summary>
            Subscribes the clear region.The cache manager will subscribe to the back plate to get
            triggered whenever another client cleared a region.
            </summary>
            <param name="clearRegion">The clear region.</param>
            <exception cref="T:System.ArgumentNullException">If clearRegion is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.SubscribeRemove(System.Action{System.String})">
            <summary>
            The cache manager will subscribe to the back plate to get triggered whenever another
            client removed a cache item.
            </summary>
            <param name="remove">The remove.</param>
            <exception cref="T:System.ArgumentNullException">If remove is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.SubscribeRemove(System.Action{System.String,System.String})">
            <summary>
            The cache manager will subscribe to the back plate to get triggered whenever another
            client removed a cache item.
            </summary>
            <param name="remove">The remove.</param>
            <exception cref="T:System.ArgumentNullException">If remove is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheBackPlate.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="managed">
            <c>true</c> to release both managed and unmanaged resources; <c>false</c> to release
            only unmanaged resources.
            </param>
        </member>
        <member name="T:CacheManager.Core.Internal.CacheActionEventArgs">
            <summary>
            Event arguments for cache actions.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheActionEventArgs.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.Internal.CacheActionEventArgs"/> class.
            </summary>
            <param name="key">The key.</param>
            <param name="region">The region.</param>
            <exception cref="T:System.ArgumentNullException">If key is null.</exception>
        </member>
        <member name="P:CacheManager.Core.Internal.CacheActionEventArgs.Key">
            <summary>
            Gets the key.
            </summary>
            <value>The key.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.CacheActionEventArgs.Region">
            <summary>
            Gets the region.
            </summary>
            <value>The region.</value>
        </member>
        <member name="T:CacheManager.Core.Internal.CacheClearEventArgs">
            <summary>
            Event arguments for cache clear events.
            </summary>
        </member>
        <member name="T:CacheManager.Core.Internal.CacheClearRegionEventArgs">
            <summary>
            Event arguments for clear region events.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheClearRegionEventArgs.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.Internal.CacheClearRegionEventArgs"/> class.
            </summary>
            <param name="region">The region.</param>
            <exception cref="T:System.ArgumentNullException">If region is null.</exception>
        </member>
        <member name="P:CacheManager.Core.Internal.CacheClearRegionEventArgs.Region">
            <summary>
            Gets the region.
            </summary>
            <value>The region.</value>
        </member>
        <member name="T:CacheManager.Core.Internal.CacheUpdateEventArgs`1">
            <summary>
            Event arguments for cache update actions.
            </summary>
            <typeparam name="TCacheValue">The type of the cache value.</typeparam>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheUpdateEventArgs`1.#ctor(System.String,System.String,System.Int32,CacheManager.Core.UpdateItemResult{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.Internal.CacheUpdateEventArgs`1" /> class.
            </summary>
            <param name="key">The key.</param>
            <param name="region">The region.</param>
            <param name="maxRetries">The number of retries configured.</param>
            <param name="result">The result.</param>
        </member>
        <member name="P:CacheManager.Core.Internal.CacheUpdateEventArgs`1.MaxRetries">
            <summary>
            Gets the number of tries which were configured for the update operation.
            </summary>
            <value>The number of tries.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.CacheUpdateEventArgs`1.Key">
            <summary>
            Gets the key.
            </summary>
            <value>The key.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.CacheUpdateEventArgs`1.Region">
            <summary>
            Gets the region.
            </summary>
            <value>The region.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.CacheUpdateEventArgs`1.Result">
            <summary>
            Gets the result.
            </summary>
            <value>The result.</value>
        </member>
        <member name="T:CacheManager.Core.Internal.CachePerformanceCounterType">
            <summary>
            Supported performance counter types.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CachePerformanceCounterType.Items">
            <summary>
            The number of items.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CachePerformanceCounterType.HitRatio">
            <summary>
            The hit ratio.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CachePerformanceCounterType.HitRatioBase">
            <summary>
            The hit ratio base.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CachePerformanceCounterType.TotalHits">
            <summary>
            The total hits.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CachePerformanceCounterType.TotalMisses">
            <summary>
            The total misses.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CachePerformanceCounterType.TotalWrites">
            <summary>
            The total writes.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CachePerformanceCounterType.ReadsPerSecond">
            <summary>
            The reads per second.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CachePerformanceCounterType.WritesPerSecond">
            <summary>
            The writes per second.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CachePerformanceCounterType.HitsPerSecond">
            <summary>
            The hits per second.
            </summary>
        </member>
        <member name="T:CacheManager.Core.Internal.CacheStats`1">
            <summary>
            <para>Stores statistical information for a <see cref="T:CacheManager.Core.Internal.BaseCacheHandle`1"/>.</para>
            <para>
            Statistical counters are stored globally for the <see cref="T:CacheManager.Core.Internal.BaseCacheHandle`1"/>
            and for each cache region!
            </para>
            <para>
            To retrieve a counter for a region only, specify the optional region attribute of GetStatistics.
            </para>
            </summary>
            <remarks>
            The class is primarily used internally. Only the GetStatistics is visible. Therefore the
            class is sealed.
            </remarks>
            <typeparam name="TCacheValue">Inherited object type of the owning cache handle.</typeparam>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.#ctor(System.String,System.String,System.Boolean,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.Internal.CacheStats`1"/> class.
            </summary>
            <param name="cacheName">Name of the cache.</param>
            <param name="handleName">Name of the handle.</param>
            <param name="enabled">
            If set to <c>true</c> the stats are enabled. Otherwise any statistics and performance
            counters will be disabled.
            </param>
            <param name="enablePerformanceCounters">
            If set to <c>true</c> performance counters and statistics will be enabled.
            </param>
            <exception cref="T:System.ArgumentNullException">
            If cacheName or handleName are null.
            </exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:CacheManager.Core.Internal.CacheStats`1"/> class.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting
            unmanaged resources.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.GetStatistic(CacheManager.Core.Internal.CacheStatsCounterType,System.String)">
             <summary>
             <para>
             Returns the corresponding statistical information of the
             <see cref="T:CacheManager.Core.Internal.CacheStatsCounterType"/> type.
             </para>
             <para>
             If the cache handles is configured to disable statistics, the method will always return zero.
             </para>
             </summary>
             <remarks>
             In multi threaded environments the counters can be changed while reading. Do not rely on
             those counters as they might not be 100% accurate.
             </remarks>
             <example>
             <code>
             <![CDATA[
             var cache = CacheFactory.FromConfiguration("myCache");
            
             foreach (var handle in cache.CacheHandles)
             {
                var stats = handle.Stats;
                var region = "myRegion";
                Console.WriteLine(string.Format(
                        "Items: {0}, Hits: {1}, Miss: {2}, Remove: {3}, ClearRegion: {4}, Clear: {5}, Adds: {6}, Puts: {7}, Gets: {8}",
                            stats.GetStatistic(CacheStatsCounterType.Items, region),
                            stats.GetStatistic(CacheStatsCounterType.Hits, region),
                            stats.GetStatistic(CacheStatsCounterType.Misses, region),
                            stats.GetStatistic(CacheStatsCounterType.RemoveCalls, region),
                            stats.GetStatistic(CacheStatsCounterType.ClearRegionCalls, region),
                            stats.GetStatistic(CacheStatsCounterType.ClearCalls, region),
                            stats.GetStatistic(CacheStatsCounterType.AddCalls, region),
                            stats.GetStatistic(CacheStatsCounterType.PutCalls, region),
                            stats.GetStatistic(CacheStatsCounterType.GetCalls, region)
                        ));
             }
             ]]>
             </code>
             </example>
             <param name="type">The stats type to retrieve the number for.</param>
             <param name="region">
             The region. The returned value will represent the counter of the region only.
             </param>
             <returns>
             A number representing the counts for the specified <see cref="T:CacheManager.Core.Internal.CacheStatsCounterType"/>
             and region.
             </returns>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.GetStatistic(CacheManager.Core.Internal.CacheStatsCounterType)">
             <summary>
             <para>
             Returns the corresponding statistical information of the
             <see cref="T:CacheManager.Core.Internal.CacheStatsCounterType"/> type.
             </para>
             <para>
             If the cache handles is configured to disable statistics, the method will always return zero.
             </para>
             </summary>
             <remarks>
             In multithreaded environments the counters can be changed while reading. Do not rely on
             those counters as they might not be 100% accurate.
             </remarks>
             <example>
             <code>
             <![CDATA[
             var cache = CacheFactory.FromConfiguration("myCache");
            
             foreach (var handle in cache.CacheHandles)
             {
                var stats = handle.Stats;
                Console.WriteLine(string.Format(
                        "Items: {0}, Hits: {1}, Miss: {2}, Remove: {3}, ClearRegion: {4}, Clear: {5}, Adds: {6}, Puts: {7}, Gets: {8}",
                            stats.GetStatistic(CacheStatsCounterType.Items),
                            stats.GetStatistic(CacheStatsCounterType.Hits),
                            stats.GetStatistic(CacheStatsCounterType.Misses),
                            stats.GetStatistic(CacheStatsCounterType.RemoveCalls),
                            stats.GetStatistic(CacheStatsCounterType.ClearRegionCalls),
                            stats.GetStatistic(CacheStatsCounterType.ClearCalls),
                            stats.GetStatistic(CacheStatsCounterType.AddCalls),
                            stats.GetStatistic(CacheStatsCounterType.PutCalls),
                            stats.GetStatistic(CacheStatsCounterType.GetCalls)
                        ));
             }
             ]]>
             </code>
             </example>
             <param name="type">The stats type to retrieve the number for.</param>
             <returns>A number representing the counts for the specified <see cref="T:CacheManager.Core.Internal.CacheStatsCounterType"/>.</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.OnAdd(CacheManager.Core.CacheItem{`0})">
            <summary>
            Called when an item gets added to the cache.
            </summary>
            <param name="item">The item.</param>
            <exception cref="T:System.ArgumentNullException">If item is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.OnClear">
            <summary>
            Called when the cache got cleared.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.OnClearRegion(System.String)">
            <summary>
            Called when a cache region got cleared.
            </summary>
            <param name="region">The region.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.OnGet(System.String)">
            <summary>
            Called when cache Get got invoked.
            </summary>
            <param name="region">The region.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.OnHit(System.String)">
            <summary>
            Called when a Get was successful.
            </summary>
            <param name="region">The region.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.OnMiss(System.String)">
            <summary>
            Called when a Get was not successful.
            </summary>
            <param name="region">The region.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.OnPut(CacheManager.Core.CacheItem{`0},System.Boolean)">
            <summary>
            Called when an item got updated.
            </summary>
            <param name="item">The item.</param>
            <param name="itemAdded">If <c>true</c> the item didn't exist and has been added.</param>
            <exception cref="T:System.ArgumentNullException">If item is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.OnRemove(System.String)">
            <summary>
            Called when an item has been removed from the cache.
            </summary>
            <param name="region">The region.</param>
        </member>
        <member name="M:CacheManager.Core.Internal.CacheStats`1.OnUpdate(System.String,System.String,CacheManager.Core.UpdateItemResult{`0})">
            <summary>
            Called when an item has been updated.
            </summary>
            <param name="key">The key.</param>
            <param name="region">The region.</param>
            <param name="result">The result.</param>
            <exception cref="T:System.ArgumentNullException">If key or result are null.</exception>
        </member>
        <member name="T:CacheManager.Core.Internal.CacheStatsCounterType">
            <summary>
            Defines the different counter types the cache manager supports.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CacheStatsCounterType.Hits">
            <summary>
            The number of hits.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CacheStatsCounterType.Misses">
            <summary>
            The number of misses.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CacheStatsCounterType.Items">
            <summary>
            The total number of items.
            <para>
            This might not be accurate in distribute cache scenarios because we count only the items
            added or removed locally.
            </para>
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CacheStatsCounterType.RemoveCalls">
            <summary>
            The number of remove calls.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CacheStatsCounterType.AddCalls">
            <summary>
            The number of add calls.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CacheStatsCounterType.PutCalls">
            <summary>
            The number of put calls.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CacheStatsCounterType.GetCalls">
            <summary>
            The number of get calls.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CacheStatsCounterType.ClearCalls">
            <summary>
            The number of clear calls.
            </summary>
        </member>
        <member name="F:CacheManager.Core.Internal.CacheStatsCounterType.ClearRegionCalls">
            <summary>
            The number of clear region calls.
            </summary>
        </member>
        <member name="T:CacheManager.Core.Internal.DictionaryCacheHandle`1">
            <summary>
            This handle is for internal use and testing. It does not implement any expiration.
            </summary>
            <typeparam name="TCacheValue">The type of the cache value.</typeparam>
        </member>
        <member name="M:CacheManager.Core.Internal.DictionaryCacheHandle`1.#ctor(CacheManager.Core.CacheManagerConfiguration,CacheManager.Core.CacheHandleConfiguration,CacheManager.Core.Logging.ILoggerFactory)">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.Internal.DictionaryCacheHandle`1"/> class.
            </summary>
            <param name="managerConfiguration">The manager configuration.</param>
            <param name="configuration">The cache handle configuration.</param>
            <param name="loggerFactory">The logger factory.</param>
        </member>
        <member name="P:CacheManager.Core.Internal.DictionaryCacheHandle`1.Count">
            <summary>
            Gets the count.
            </summary>
            <value>The count.</value>
        </member>
        <member name="P:CacheManager.Core.Internal.DictionaryCacheHandle`1.Logger">
            <inheritdoc />
        </member>
        <member name="M:CacheManager.Core.Internal.DictionaryCacheHandle`1.Clear">
            <summary>
            Clears this cache, removing all items in the base cache and all regions.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.DictionaryCacheHandle`1.ClearRegion(System.String)">
            <summary>
            Clears the cache region, removing all items from the specified <paramref name="region"/> only.
            </summary>
            <param name="region">The cache region.</param>
            <exception cref="T:System.ArgumentNullException">If region is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.DictionaryCacheHandle`1.AddInternalPrepared(CacheManager.Core.CacheItem{`0})">
            <summary>
            Adds a value to the cache.
            </summary>
            <param name="item">The <c>CacheItem</c> to be added to the cache.</param>
            <returns>
            <c>true</c> if the key was not already added to the cache, <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">If item is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.DictionaryCacheHandle`1.GetCacheItemInternal(System.String)">
            <summary>
            Gets a <c>CacheItem</c> for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>The <c>CacheItem</c>.</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.DictionaryCacheHandle`1.GetCacheItemInternal(System.String,System.String)">
            <summary>
            Gets a <c>CacheItem</c> for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>The <c>CacheItem</c>.</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.DictionaryCacheHandle`1.PutInternalPrepared(CacheManager.Core.CacheItem{`0})">
            <summary>
            Puts the <paramref name="item"/> into the cache. If the item exists it will get updated
            with the new value. If the item doesn't exist, the item will be added to the cache.
            </summary>
            <param name="item">The <c>CacheItem</c> to be added to the cache.</param>
            <exception cref="T:System.ArgumentNullException">If item is null.</exception>
        </member>
        <member name="M:CacheManager.Core.Internal.DictionaryCacheHandle`1.RemoveInternal(System.String)">
            <summary>
            Removes a value from the cache for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <returns>
            <c>true</c> if the key was found and removed from the cache, <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:CacheManager.Core.Internal.DictionaryCacheHandle`1.RemoveInternal(System.String,System.String)">
            <summary>
            Removes a value from the cache for the specified key.
            </summary>
            <param name="key">The key being used to identify the item within the cache.</param>
            <param name="region">The cache region.</param>
            <returns>
            <c>true</c> if the key was found and removed from the cache, <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:CacheManager.Core.Internal.DictionaryCacheHandle`1.GetKey(System.String,System.String)">
            <summary>
            Gets the key.
            </summary>
            <param name="key">The key.</param>
            <param name="region">The region.</param>
            <returns>The full key.</returns>
            <exception cref="T:System.ArgumentException">If Key is empty.</exception>
        </member>
        <member name="T:CacheManager.Core.Internal.ICacheSerializer">
            <summary>
            Defines the contract for serialization of the cache value and cache items.
            The cache item serialization should be separated in case the serialization
            technology does not support immuatble objects; in that case <see cref="T:CacheManager.Core.CacheItem`1"/> might not
            be serializable directly and the implementation has to wrap the cache item.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Internal.ICacheSerializer.Serialize``1(``0)">
            <summary>
            Serializes the given <paramref name="value"/> and returns the serialized data as byte array.
            </summary>
            <typeparam name="T">The type of the value.</typeparam>
            <param name="value">The value to serialize.</param>
            <returns>The serialization result</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.ICacheSerializer.Deserialize(System.Byte[],System.Type)">
            <summary>
            Deserializes the <paramref name="data"/> into the given <paramref name="target"/> <c>Type</c>.
            </summary>
            <param name="data">The data which should be deserialized.</param>
            <param name="target">The type of the object to deserialize into.</param>
            <returns>The deserialized object.</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.ICacheSerializer.SerializeCacheItem``1(CacheManager.Core.CacheItem{``0})">
            <summary>
            Serializes the given <paramref name="value"/>.
            </summary>
            <typeparam name="T">The type of the cache value.</typeparam>
            <param name="value">The value to serialize.</param>
            <returns>The serialized result.</returns>
        </member>
        <member name="M:CacheManager.Core.Internal.ICacheSerializer.DeserializeCacheItem``1(System.Byte[],System.Type)">
            <summary>
            Deserializes the <paramref name="value"/> into a <see cref="T:CacheManager.Core.CacheItem`1"/>.
            The <paramref name="valueType"/> must not match the <typeparamref name="T"/> in case
            <typeparamref name="T"/> is <c>object</c> for example, the <paramref name="valueType"/>
            might be the real type of the value. This is needed to properly deserialize in some cases.
            </summary>
            <typeparam name="T">The type of the cache value.</typeparam>
            <param name="value">The data to deserialize from.</param>
            <param name="valueType">The type of the actual serialized cache value.</param>
            <returns>The deserialized cache item.</returns>
        </member>
        <member name="T:CacheManager.Core.Logging.ILogger">
            <summary>
            Represents a type used to perform logging.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Logging.ILogger.Log(CacheManager.Core.Logging.LogLevel,System.Int32,System.Object,System.Exception)">
            <summary>
            Logs a message for the given <paramref name="logLevel"/>.
            </summary>
            <param name="logLevel">The log level.</param>
            <param name="eventId">The optional even id.</param>
            <param name="message">The log message.</param>
            <param name="exception">The optional exception.</param>
        </member>
        <member name="M:CacheManager.Core.Logging.ILogger.IsEnabled(CacheManager.Core.Logging.LogLevel)">
            <summary>
            Checks if the given LogLevel is enabled.
            </summary>
            <param name="logLevel">The log level.</param>
            <returns><c>True</c> if the <paramref name="logLevel"/> is enabled, <c>False</c> otherwise.</returns>
        </member>
        <member name="M:CacheManager.Core.Logging.ILogger.BeginScope(System.Object)">
            <summary>
            Begins a logical operation scope.
            </summary>
            <param name="state">The identifier for the scope.</param>
            <returns>An <c>IDisposable</c> that ends the logical operation scope on dispose.</returns>
        </member>
        <member name="T:CacheManager.Core.Utility.Guard">
            <summary>
            Utility class to do <c>null</c> and other checks.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Utility.Guard.NotNull``1(``0,System.String)">
            <summary>
            Validates that <paramref name="value"/> is not <c>null</c> and otherwise throws an exception.
            <c>Structs</c> are allowed although <paramref name="value"/> cannot be <c>null</c> in this case.
            </summary>
            <typeparam name="T">The type of <paramref name="value"/>.</typeparam>
            <param name="value">The parameter value to validate.</param>
            <param name="parameterName">The parameter name.</param>
            <returns>The <paramref name="value"/>, if not <c>null</c>.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is <c>null</c>.</exception>
        </member>
        <member name="M:CacheManager.Core.Utility.Guard.NotNullOrEmpty(System.String,System.String)">
            <summary>
            Validates that <paramref name="value"/> is not null or empty and otherwise throws an exception.
            </summary>
            <param name="value">The parameter value to validate.</param>
            <param name="name">The parameter name.</param>
            <returns>The <paramref name="value"/>, if not null or empty.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="value"/> is empty.</exception>
        </member>
        <member name="M:CacheManager.Core.Utility.Guard.NotNullOrEmpty``1(System.Collections.Generic.ICollection{``0},System.String)">
            <summary>
            Validates that <paramref name="value"/> is not null or empty and otherwise throws an exception.
            </summary>
            <param name="value">The parameter value to validate.</param>
            <param name="name">The parameter name.</param>
            <returns>The <paramref name="value"/>, if not null or empty.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="value"/> is empty.</exception>
            <typeparam name="T">Type of the collection.</typeparam>
        </member>
        <member name="M:CacheManager.Core.Utility.Guard.NotNullOrWhiteSpace(System.String,System.String)">
            <summary>
            Validates that <paramref name="value"/> is not null, empty or contains whitespaces only
            and otherwise throws an exception.
            </summary>
            <param name="value">The parameter value to validate.</param>
            <param name="name">The parameter name.</param>
            <returns>The <paramref name="value"/> if not null or empty.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="value"/> is empty.</exception>
        </member>
        <member name="M:CacheManager.Core.Utility.Guard.Ensure(System.Boolean,System.String,System.Object[])">
            <summary>
            Validates that <paramref name="condition"/> is true and otherwise throws an exception.
            </summary>
            <param name="condition">The condition to validate.</param>
            <param name="message">The message to throw if the configurtion is <c>false</c>.</param>
            <param name="args"><c>string.Format</c> will be used to format <paramref name="message"/>
            and <c>args</c> to create the exception message.</param>
            <returns><c>true</c> if the <paramref name="condition"/> is valid.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="condition"/> is false.</exception>
        </member>
        <member name="M:CacheManager.Core.Utility.Guard.EnsureNotNull``1(``0,System.String,System.Object[])">
            <summary>
            Validates that <paramref name="value"/> is not <c>null</c> and otherwise throws an exception.
            <c>Structs</c> are allowed although <paramref name="value"/> cannot be <c>null</c> in this case.
            </summary>
            <typeparam name="T">The type of <paramref name="value"/>.</typeparam>
            <param name="value">The value to validate.</param>
            <param name="message">The message to throw if the <paramref name="value"/> is <c>null</c>.</param>
            <param name="args"><c>string.Format</c> will be used to format <paramref name="message"/>
            and <c>args</c> to create the exception message.</param>
            <returns>The <paramref name="value"/> if not <c>null</c>.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="value"/> is <c>null</c>.</exception>
        </member>
        <member name="T:CacheManager.Core.Utility.ValidatedNotNullAttribute">
            <summary>
            Indicates to Code Analysis that a method validates a particular parameter.
            </summary>
        </member>
        <member name="M:CacheManager.Core.Utility.ValidatedNotNullAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CacheManager.Core.Utility.ValidatedNotNullAttribute"/> class.
            </summary>
        </member>
    </members>
</doc>
