Netcache هي مكتبة تخزين ذاكرة التخزين المؤقت ذات التبعية الودية والمستمرة.
تم تصميم Netcache لتكون مكتبة بسيطة وسريعة توفر حلاً تقريبًا من الفضة مع التخزين المؤقت والمثابرة لتطبيقات .NET. لقد صممت المكتبة لتكون وظيفية لجميع تطبيقات .NET الحديثة.
قم بتشغيل ما يلي في وحدة التحكم Manager الخاصة بك أو التثبيت عبر Nuget Package Manager على Visual Studio أو Rider ؛
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 )
{
// ...
}
}منحت أن هذا لا يفعل شيئًا على الإطلاق ، ولكنه يمكن أن يوفر لك مساحة كافية بسهولة لإنشاء متطلباتك الخاصة في نظام التسلسل. يمكنك حتى تسريع أداء المكتبة (في هذه الحالة ، افتح طلب سحب!).
مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا والاستفادة حاليًا من هذه الحزم مفتوحة المصدر: