BMCache 2.0.0
dotnet add package BMCache --version 2.0.0
NuGet\Install-Package BMCache -Version 2.0.0
<PackageReference Include="BMCache" Version="2.0.0" />
paket add BMCache --version 2.0.0
#r "nuget: BMCache, 2.0.0"
// Install BMCache as a Cake Addin #addin nuget:?package=BMCache&version=2.0.0 // Install BMCache as a Cake Tool #tool nuget:?package=BMCache&version=2.0.0
<p align="center"> <img src="https://raw.githubusercontent.com/AnemonOFF/BMCache/main/logo.png" alt="BMCache"> <h1 align="center">BMCache</h1> </p> <p align="center"> <a href="https://www.nuget.org/packages/BMCache/"><img alt="Nuget" src="https://img.shields.io/nuget/v/BMCache"></a> <a href="https://github.com/AnemonOFF/BMCache/blob/main/LICENSE"><img alt="GitHub" src="https://img.shields.io/github/license/AnemonOFF/BMCache"></a> </p> </br>
A simple C# cacher. Caching in file.
How to use
- Firstly create cache provider
var provider = new BMCacheProvider();
| Agrument | type | required | default | description | |-----------------------|-----------|----------|----------|-----------------------------------------------| | dir | string | - | bmcache | directory where storage cache data | | defaultExpirationTime | TimeStamp | - | 24 hours | Default expiration time to delete cached file | 2. Create cacher by provider. DO NOT create it by yourself (using new BMCacher()).
var cacher = provider.CreateCacher("test");
| Agrument | type | required | default | description | |-----------------------|-----------|----------|----------------------------------|--------------------------------------------------------| | name | string | + | | directory (and cacher) name, where to save cached data | | defaultExpirationTime | TimeStamp | - | Provider`s defaultExpirationTime | Default expiration time to delete cached file | 3. Cache
// You can cache and get it back via diferrent methods
var variableToCache = "cache me";
cacher.Cache("identifier", variableToCache);
var variableFromCache = cacher.Get<string>("identifier");
// You can use default methods with just value argument.
// This methods will give you cached before value
// or cache it and throw back
var cachedTime = cacher.GetOrCache<DateTime>("dt", DateTime.UtcNow);
var cachedDoub = await cacher.GetOrCacheAsync<double>("double", 123.456);
// Or use value generator
Func<int> intFunction = () => 12345;
var cachedNum = cacher.GetOrCache<int>("num", intFunction);
var cachedNumAsync = await cacher.GetOrCacheAsync<int>("num", intFunction);
// Or async value generator
Func<Task<List<string>>> listAsyncFunc = async () => new List<string>() { "first", "second", "third" };
var cachedList = await cacher.GetOrCacheAsync<List<string>>("list", listAsyncFunc);
In addition you can set expiration time for each caching separately
// In example, this row will cache string for 2 hour from now
cacher.Cache("identifier", "string to cache", new TimeStamp(2, 0, 0));
*For expiration control, library using UTC time
License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
-
net6.0
- Newtonsoft.Json (>= 13.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.