# JF.NET.SqliteSerializer **Repository Path**: Jeff2016/JF.NET.SqliteSerializer ## Basic Information - **Project Name**: JF.NET.SqliteSerializer - **Description**: No description available - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-24 - **Last Updated**: 2022-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用SQLite的格式将对象进行序列化和反序列化 ## 介绍 ## 字段类型支持 - bool - byte - char - Int16 / Int32 / Int64 - Uint16 / Uint32 / Uint64 - Single / Double / Decimal - String - Enum (枚举类型) - Struct (值类型) - 派生自IGObject的引用类型 ## 自带的集合类型 - GObject 一个IGobject的基础实现,普通类型请继承该类 - GList\ - GBindingList\ 泛型中的T必须为IGobject的派生类型 ## 示例 ``` C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using JF.NET.SqliteSerializer; using System.IO; using System.Diagnostics; namespace Example { class Program { static void Main(string[] args) { var classRoom = new ClassRoom() { Name = "1" }; classRoom.Teacher = new Teacher() { Name = "Jeff" }; classRoom.Students = new GList(); for (var i = 0; i < 10000; i++) { classRoom.Students.Add(new Student { Name = "Student" + i, Age = 18, Sex = Sex.Mail }); } var fileName = "data.db"; if (File.Exists(fileName)) File.Delete(fileName); var sqliteSerialize = new SqliteSerialize(new SQLiteHelper($"Data Source={fileName}")); sqliteSerialize.Serialize(classRoom); var serialize = new SqliteSerialize(new SQLiteHelper($"Data Source={fileName}")); var objects = serialize.Deserialize(typeof(ClassRoom).Assembly); var entry = objects.FirstOrDefault(m => m is ClassRoom) as ClassRoom; if (entry != null) { Console.WriteLine($"class room name: {entry.Name}"); Console.WriteLine($"class room students: {entry.Students.Count}"); Console.WriteLine($"class room teacher: {entry.Teacher.Name}"); } Console.ReadLine(); } } } ```