Biser
v1.9
.NET DOTNET用のクロスプラットフォームバイナリおよびJSONシリアイザー。
raft.netで使用されるdbreezeデータベースの統合部分
次の行を呼び出して、Serialzerのコードを作成します。
var resbof = BiserObjectify . Generator . Run ( typeof ( TS6 ) , true ,
@"D:Temp1" , forBiserBinary : true , forBiserJson : true , null ) ;最初の引数は、シリアル化するルートオブジェクトのタイプです(シリアル化する必要がある他のオブジェクトを含めることができます)。 2番目の引数とは、biserobjectifyがルートオブジェクトに含まれるすべてのオブジェクトのシリアイザーを準備する必要があることを意味します。 3番目の引数は、オブジェクトごとのC#ファイルが作成されるフォルダーを指します。 4番目と5番目の議論は、バイナリとJSONシリアイザーの両方を使用したいことを意味します。 6番目の議論は、シリアル化されないプロパティ名を持つハッシュセット(またはnull)です。
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 ) ; 深い理解のために:
ドキュメントバイナリバイザー
ドキュメントJson Biser
手動エンコーダー/デコーダーの例