عبر منصة ثنائية و json serializer ل .net dotnet.
جزء متكامل من قاعدة بيانات Dbreeze ، المستخدمة في Raft.net
اتصل على السطر التالي لإنشاء رمز لـ Serialzer:
var resbof = BiserObjectify . Generator . Run ( typeof ( TS6 ) , true ,
@"D:Temp1" , forBiserBinary : true , forBiserJson : true , null ) ;الوسيطة الأولى هي نوع كائن الجذر المراد التسلسلي (يمكن أن يحتوي على كائنات أخرى يجب أن تكون متسلسلة أيضًا). الوسيطة الثانية تعني أن BiserObjectify يجب أن يعد المسلسل لجميع الكائنات المدرجة في كائن الجذر. تشير الوسيطة الثالثة إلى المجلد حيث سيتم إنشاء ملفات C# لكل كائن. الحجج الرابعة والخامسة تعني أننا نريد استخدام كل من المسلسلات الثنائية و JSON. الحجة السادسة هي عبارة عن مجموعة من الهاشس (أو خالية) مع أسماء الممتلكات التي لن يتم تسلسلها.
سيحتوي متغير Resbof على نفس المعلومات التي تم إنشاؤها في الملفات التي تم إنشاؤها أيضًا كقاموس.
public partial class TS6
{
public string P1 { get ; set ; }
.. . TS6 t6 = new TS6 ( )
{
P1 = "dsfs" ,
P2 = 456 ,
P3 = DateTime . UtcNow ,
P4 = new List < Dictionary < DateTime , Tuple < int , string > >>
{
new Dictionary < DateTime , Tuple < int , string > > {
{ DateTime . UtcNow . AddMinutes ( - 1 ) , new Tuple < int , string > ( 12 , "testvar" ) } ,
{ DateTime . UtcNow . AddMinutes ( - 2 ) , new Tuple < int , string > ( 125 , "testvar123" ) }
} ,
new Dictionary < DateTime , Tuple < int , string > > {
{ DateTime . UtcNow . AddMinutes ( - 3 ) , new Tuple < int , string > ( 17 , "dsfsdtestvar" ) } ,
{ DateTime . UtcNow . AddMinutes ( - 4 ) , new Tuple < int , string > ( 15625 , "sdfsdtestvar" ) }
}
} ,
P5 = new Dictionary < int , Tuple < int , string > > {
{ 12 , new Tuple < int , string > ( 478 , "dsffdf" ) } ,
{ 178 , new Tuple < int , string > ( 5687 , "sdfsd" ) }
} ,
P6 = new Tuple < int , string , Tuple < List < string > , DateTime > > ( 445 , "dsfdfgfgfg" ,
new Tuple < List < string > , DateTime > ( new List < string > { "a1" , "a2" } , DateTime . Now . AddDays ( 58 ) ) ) ,
P7 = new List < string > { "fgdfgrdfg" , "dfgfdgdfg" } ,
P8 = new Dictionary < int , List < string > > {
{ 34 , new List < string > { "drtttz" , "ghhtht" } } ,
{ 4534 , new List < string > { "dfgfghfgz" , "6546ghhtht" } }
} ,
P25 = new Dictionary < int , List < string [ , ] [ ] [ , , ] > > [ , , , ] [ ] [ , , ]
.. .
} var serializedObjectAsByteArray = t6 . BiserEncoder ( ) . Encode ( ) ;
var retoredBinaryObject = TS6 . BiserDecode ( serializedObjectAsByteArray ) ; var jsonSettings = new Biser . JsonSettings { DateFormat = Biser . JsonSettings . DateTimeStyle . ISO } ;
string prettifiedJsonString = new Biser . JsonEncoder ( t6 , jsonSettings )
. GetJSON ( Biser . JsonSettings . JsonStringStyle . Prettify ) ;
var restoredJsonObject = TS6 . BiserJsonDecode ( prettifiedJsonString , settings : jsonSettings ) ; من أجل الفهم العميق:
الوثائق الثنائية biser
وثائق JSON BISER
أمثلة على الترميزات اليدوية/فك التشفير