netCache
v1.0.1
Netcache是一個簡單,依賴注入友好且持久的緩存存儲庫。
Netcache設計為一個簡單快捷的庫,可提供幾乎銀色的解決方案,並具有用於.NET應用程序的緩存和持久性。我設計了庫,適用於所有現代.NET應用程序。
在您的軟件包管理器控制台中運行以下內容,或通過Visual Studio或Rider上的Nuget軟件包管理器安裝;
PM > Install-Package NetCache如果您想將NetCache和依賴項注入使用,則還應安裝以下軟件包
PM > Install-Package NetCache.DependencyInjection您可以通過將其註入服務集合或創建Netcacher類的新實例來開始使用該軟件包。
var cacher = new NetCacher ( new NetCacherOptions ( ) ) ; // Create a new cacher with default options或者,依賴注射
services . AddNetCacher ( opts =>
{
.. .
} ) ;首先,這是我們在以下示例中使用的模擬課程:
public class Mock
{
public string FirstName { get ; set ; }
public string LastName { get ; set ; }
public Mock ( string firstName , string lastName )
{
FirstName = firstName ;
LastName = lastName ;
}
}現在我們可以開始,在緩存中設置新記錄,您可以調用SetObject<TObj>方法,如圖所示
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為了獲得相同的記錄,我們可以使用GetRecord<TObj>方法如下所示
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 ) ; // Foo也許,默認的序列化器並不是為您切割它,您需要自己的自定義序列化器,從而為您提供專門定制的解決方案。沒問題,在下面找到自定義序列化器的簡單實現。
public class CustomSerializer : ISerializer
{
public ReadOnlySpan < char > Serialize < TObj > ( TObj obj )
{
// ...
}
public TObj ? Deserialize < TObj > ( ReadOnlySpan < char > rawData )
{
// ...
}
}當然,這絕對沒有做任何事情,但是它可以輕鬆為您提供足夠的空間,以將自己的要求構建到序列化系統中。您甚至可以加快庫的性能(在這種情況下,打開拉動請求!)。
根據MIT許可證獲得許可,目前利用這些開源包: