In-Memory

In-Memory cache provides own configuration properties. For configuration details please visit.

You can configure values from appsettings.json file

{
    "Caching": {
        "Source": "InMemory",
        "InMemory": {
           "TrackStatistics": true,
           "ExpirationScanFrequencyInSeconds" : 30
        }
    }
}

If you need to advanced configuration or configure cache service without appsettings.json file. You can use extension method.

AddCaching method initally read values from appsettings.json file afterwards applies configuration from action method.

// Program.cs (.NET5 and above)
public static async Task Main(string[] args)
{
    var builder = WebApplication.CreateBuilder(args);
    
    // Add with configuration instance
    var cacheOptions = new InMemoryCacheOptions();
    cacheOptions.ExpirationScanFrequencyInSeconds = 30;
    cacheOptions.Clock = new CustomSystemClock(); // Your custom ISystemClock implementation.
    builder.AddCaching(x => x.InMemory(cacheOptions));

    // Add with inline action method
    builder.AddCaching(x => x.InMemory(x => x.ExpirationScanFrequencyInSeconds = 120));
 
    var app = builder.Build();
    app.Run();
}

Last updated