Netcacheは、シンプルで依存関係の注入に優しいものであり、持続性のあるキャッシュストレージライブラリです。
Netcacheは、.NETアプリケーションのキャッシュと持続性を備えたほぼ銀色の表示ソリューションを提供するシンプルで高速なライブラリになるように設計されています。すべての最新の.NETアプリケーションに機能するようにライブラリを設計しました。
Package Managerコンソールで以下を実行するか、Visual StudioまたはRiderのNuget Package Managerを介してインストールします。
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ライセンスの下でライセンスを取得し、現在これらのオープンソースパッケージを活用しています。