Netcache est une bibliothèque de stockage de cache simples, conviviale et persistante.
NetCache est conçu pour être une bibliothèque simple et rapide qui fournit une solution presque argentée avec la mise en cache et la persistance pour les applications .NET. J'ai conçu la bibliothèque pour être fonctionnelle pour toutes les applications .NET modernes.
Exécutez ce qui suit dans la console de votre gestionnaire de packages ou installez via le gestionnaire de packages NuGet sur Visual Studio ou Rider;
PM > Install-Package NetCacheSi vous souhaitez utiliser NetCache avec injection de dépendance, vous devez également installer le package suivant
PM > Install-Package NetCache.DependencyInjectionVous pouvez commencer à utiliser le package en l'injectant dans votre collection de services ou en créant une nouvelle instance de la classe Netcacher.
var cacher = new NetCacher ( new NetCacherOptions ( ) ) ; // Create a new cacher with default optionsOu, avec injection de dépendance
services . AddNetCacher ( opts =>
{
.. .
} ) ;Tout d'abord, voici notre classe simulée que nous utiliserons dans les exemples suivants:
public class Mock
{
public string FirstName { get ; set ; }
public string LastName { get ; set ; }
public Mock ( string firstName , string lastName )
{
FirstName = firstName ;
LastName = lastName ;
}
} Maintenant, nous pouvons commencer, pour définir un nouvel enregistrement dans le cache, vous pouvez appeler la méthode SetObject<TObj> comme indiqué
var myObj = new Mock ( "Foo" , "Bar" ) ;
cacher . SetObject < Mock > ( "myKey" , myObj , TimeSpan . FromMinutes ( 1 ) ) ;
// Object has been cached under the key 'myKey' for 1 minute before it expires Et pour obtenir ce même enregistrement, nous pouvons utiliser la méthode GetRecord<TObj> comme indiqué ci-dessous
var myObj = cacher . GetObject < Mock > ( "myKey" ) ;
if ( myObj is null )
{
// No object was found in the cache, it could've expired or never existed
Console . WriteLine ( "No object found!" ) ;
return ;
}
Console . WriteLine ( myObj . FirstName ) ; // FooPeut-être que le sérialiseur par défaut ne le coupe pas pour vous et vous avez besoin de votre propre sérialiseur personnalisé qui vous donne des solutions spécifiquement adaptées. Pas de problème, trouvez ci-dessous une simple implémentation d'un sérialiseur personnalisé.
public class CustomSerializer : ISerializer
{
public ReadOnlySpan < char > Serialize < TObj > ( TObj obj )
{
// ...
}
public TObj ? Deserialize < TObj > ( ReadOnlySpan < char > rawData )
{
// ...
}
}Certes que celui-ci ne fait absolument rien, mais il peut facilement vous fournir suffisamment de place pour intégrer vos propres exigences dans le système de sérialisation. Vous pouvez même accélérer les performances de la bibliothèque (dans ce cas, ouvrir une demande de traction!).
Licencié sous la licence MIT et tirant actuellement parti de ces forfaits open source: