StrongTypedCache.InMemory 1.1.0

dotnet add package StrongTypedCache.InMemory --version 1.1.0
                    
NuGet\Install-Package StrongTypedCache.InMemory -Version 1.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="StrongTypedCache.InMemory" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="StrongTypedCache.InMemory" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="StrongTypedCache.InMemory" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add StrongTypedCache.InMemory --version 1.1.0
                    
#r "nuget: StrongTypedCache.InMemory, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package StrongTypedCache.InMemory@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=StrongTypedCache.InMemory&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=StrongTypedCache.InMemory&version=1.1.0
                    
Install as a Cake Tool

StrongTypedCache

A library for strongly-typed caching with DI support (.NET 8).

Installation

  1. Add a reference to the StrongTypedCache.Extensions and StrongTypedCacheLibrary projects.
  2. Add the Microsoft.Extensions.DependencyInjection package if you don't have it already.

Usage

Registering in DI

using Microsoft.Extensions.DependencyInjection;
using StrongTypedCache.Extensions;

var services = new ServiceCollection();
services.AddStrongTypedInMemoryCache<string, MyType>();

You can set the expiration time (in seconds):

services.AddStrongTypedInMemoryCache<string, MyType>(absoluteExpirationTimeSec: 600); // 10 minutes

Nullable values support

Cache now supports nullable value types:

// String cache with nullable values
services.AddStrongTypedInMemoryCache<int, string?>();

// Later in code:
cache.CreateEntry(1, null); // ? Allowed!
if (cache.TryGetValue(1, out var value))
{
    // value can be null
    Console.WriteLine(value?.Length ?? 0);
}

Using the cache

using StrongTypedCache.Abstractions;

public class MyService
{
    private readonly ICache<string, MyType> _cache;
    public MyService(ICache<string, MyType> cache)
    {
      _cache = cache;
    }

    public void Example()
    {
      // Add to cache
        _cache.CreateEntry("key1", new MyType());

   // Get from cache
        if (_cache.TryGetValue("key1", out var value))
     {
    // use value
  }

        // Remove from cache
        _cache.Remove("key1");

  // Get all values
    var all = _cache.GetAllValues();
    }
}

Key constraints

?? Important: Keys cannot be null (enforced by notnull constraint):

// ? This will cause compilation error
services.AddStrongTypedInMemoryCache<string?, MyType>();

// ? Use non-nullable key types
services.AddStrongTypedInMemoryCache<string, MyType>();
services.AddStrongTypedInMemoryCache<int, MyType>();
services.AddStrongTypedInMemoryCache<Guid, MyType>();

Interfaces

  • ICache<TKey, TValue> � main cache interface.
  • InMemoryCache<TKey, TValue> � in-memory implementation.

Projects

  • StrongTypedCache.Abstractions � interfaces.
  • StrongTypedCacheLibrary � cache implementation.
  • StrongTypedCache.Extensions � DI integration.
  • StrongTypedCache.Benchmarks � performance benchmarks using BenchmarkDotNet.

Requirements

  • .NET 8
  • Microsoft.Extensions.DependencyInjection
  • Microsoft.Extensions.Caching.Memory

License

MIT

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on StrongTypedCache.InMemory:

Package Downloads
StrongTypedCache.Extensions

DI extensions for StrongTypedCache with in-memory implementation.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 241 10/27/2025
1.0.2 232 10/27/2025
1.0.1 262 10/27/2025