Table of Contents

CacheEnumerableExtensions Class

Definition

Namespace
Cuemon.Extensions.Runtime.Caching
Assemblies
Cuemon.Extensions.Runtime.Caching.dll
Source
src/Cuemon.Extensions.Runtime.Caching/CacheEnumerableExtensions.cs

Extension methods for the ICacheEnumerable<TKey> interface.

public static class CacheEnumerableExtensions
Inheritance
CacheEnumerableExtensions

Examples

The following example demonstrates how to cache a generated value and memoize a delegate with .

using System;
using Cuemon.Extensions.Runtime.Caching;
using Cuemon.Runtime.Caching;

namespace MyApp.Examples;

public static class CacheEnumerableExtensionsExample
{
    public static void Demonstrate()
    {
        ICacheEnumerable<long> cache = new SlimMemoryCache();

        var timestamp = cache.GetOrAdd("current-time", TimeSpan.FromSeconds(30), () => DateTime.UtcNow.ToString("O"));
        var cachedAgain = cache.GetOrAdd("current-time", TimeSpan.FromSeconds(30), () => "should-not-be-used");

        var memoized = cache.Memoize(TimeSpan.FromSeconds(30), () => 42);

        Console.WriteLine(timestamp == cachedAgain);
        Console.WriteLine(memoized());
    }
}

Fields

Name Description
MemoizationScope

Represents a cache with a scope of Memoization.

Methods

Name Description
GetOrAdd<TKey, TResult>(ICacheEnumerable<TKey>, string, CacheInvalidation, Func<TResult>)

Gets the value for the specified key from the cache, or if the key does not exists, adds a value to the cache using the specified function delegate valueFactory.

GetOrAdd<TKey, TResult>(ICacheEnumerable<TKey>, string, IDependency, Func<TResult>)

Gets the value for the specified key from the cache, or if the key does not exists, adds a value to the cache using the specified function delegate valueFactory.

GetOrAdd<TKey, TResult>(ICacheEnumerable<TKey>, string, IEnumerable<IDependency>, Func<TResult>)

Gets the value for the specified key from the cache, or if the key does not exists, adds a value to the cache using the specified function delegate valueFactory.

GetOrAdd<TKey, TResult>(ICacheEnumerable<TKey>, string, DateTime, Func<TResult>)

Gets the value for the specified key from the cache, or if the key does not exists, adds a value to the cache using the specified function delegate valueFactory.

GetOrAdd<TKey, TResult>(ICacheEnumerable<TKey>, string, string, CacheInvalidation, Func<TResult>)

Gets the value for the specified key from the cache, or if the key does not exists, adds a value to the cache using the specified function delegate valueFactory.

GetOrAdd<TKey, TResult>(ICacheEnumerable<TKey>, string, string, IDependency, Func<TResult>)

Gets the value for the specified key from the cache, or if the key does not exists, adds a value to the cache using the specified function delegate valueFactory.

GetOrAdd<TKey, TResult>(ICacheEnumerable<TKey>, string, string, IEnumerable<IDependency>, Func<TResult>)

Gets the value for the specified key from the cache, or if the key does not exists, adds a value to the cache using the specified function delegate valueFactory.

GetOrAdd<TKey, TResult>(ICacheEnumerable<TKey>, string, string, DateTime, Func<TResult>)

Gets the value for the specified key from the cache, or if the key does not exists, adds a value to the cache using the specified function delegate valueFactory.

GetOrAdd<TKey, TResult>(ICacheEnumerable<TKey>, string, string, TimeSpan, Func<TResult>)

Gets the value for the specified key from the cache, or if the key does not exists, adds a value to the cache using the specified function delegate valueFactory.

GetOrAdd<TKey, TResult>(ICacheEnumerable<TKey>, string, TimeSpan, Func<TResult>)

Gets the value for the specified key from the cache, or if the key does not exists, adds a value to the cache using the specified function delegate valueFactory.

Memoize<TKey, TResult>(ICacheEnumerable<TKey>, CacheInvalidation, Func<TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, TResult>(ICacheEnumerable<TKey>, IDependency, Func<TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, TResult>(ICacheEnumerable<TKey>, IEnumerable<IDependency>, Func<TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, TResult>(ICacheEnumerable<TKey>, DateTime, Func<TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, TResult>(ICacheEnumerable<TKey>, TimeSpan, Func<TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T, TResult>(ICacheEnumerable<TKey>, CacheInvalidation, Func<T, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T, TResult>(ICacheEnumerable<TKey>, IDependency, Func<T, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T, TResult>(ICacheEnumerable<TKey>, IEnumerable<IDependency>, Func<T, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T, TResult>(ICacheEnumerable<TKey>, DateTime, Func<T, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T, TResult>(ICacheEnumerable<TKey>, TimeSpan, Func<T, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, TResult>(ICacheEnumerable<TKey>, CacheInvalidation, Func<T1, T2, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, TResult>(ICacheEnumerable<TKey>, IDependency, Func<T1, T2, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, TResult>(ICacheEnumerable<TKey>, IEnumerable<IDependency>, Func<T1, T2, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, TResult>(ICacheEnumerable<TKey>, DateTime, Func<T1, T2, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, TResult>(ICacheEnumerable<TKey>, TimeSpan, Func<T1, T2, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, TResult>(ICacheEnumerable<TKey>, CacheInvalidation, Func<T1, T2, T3, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, TResult>(ICacheEnumerable<TKey>, IDependency, Func<T1, T2, T3, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, TResult>(ICacheEnumerable<TKey>, IEnumerable<IDependency>, Func<T1, T2, T3, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, TResult>(ICacheEnumerable<TKey>, DateTime, Func<T1, T2, T3, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, TResult>(ICacheEnumerable<TKey>, TimeSpan, Func<T1, T2, T3, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, T4, TResult>(ICacheEnumerable<TKey>, CacheInvalidation, Func<T1, T2, T3, T4, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, T4, TResult>(ICacheEnumerable<TKey>, IDependency, Func<T1, T2, T3, T4, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, T4, TResult>(ICacheEnumerable<TKey>, IEnumerable<IDependency>, Func<T1, T2, T3, T4, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, T4, TResult>(ICacheEnumerable<TKey>, DateTime, Func<T1, T2, T3, T4, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, T4, TResult>(ICacheEnumerable<TKey>, TimeSpan, Func<T1, T2, T3, T4, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, T4, T5, TResult>(ICacheEnumerable<TKey>, CacheInvalidation, Func<T1, T2, T3, T4, T5, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, T4, T5, TResult>(ICacheEnumerable<TKey>, IDependency, Func<T1, T2, T3, T4, T5, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, T4, T5, TResult>(ICacheEnumerable<TKey>, IEnumerable<IDependency>, Func<T1, T2, T3, T4, T5, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, T4, T5, TResult>(ICacheEnumerable<TKey>, DateTime, Func<T1, T2, T3, T4, T5, TResult>)

Memoizes the specified valueFactory in the cache for fast access.

Memoize<TKey, T1, T2, T3, T4, T5, TResult>(ICacheEnumerable<TKey>, TimeSpan, Func<T1, T2, T3, T4, T5, TResult>)

Memoizes the specified valueFactory in the cache for fast access.