سلام ،
از کتابخانه Protobuf استفاده کنین. چندین برابر از Serialization مایکروسافت و JSON سریعتر و قوی تره.
از طریق دستور زیر در Package Manager میتونین Protobuf رو به پروژتون اضافه کنین.
Install-Package protobuf-net
[ProtoContract]
public class CourseList
{
[ProtoMember(1)]
public List<string> Courses { get; set; }
}
public byte[] Serialize(CourseList input)
{
using (MemoryStream memoryStream = new MemoryStream())
{
Serializer.Serialize(memoryStream, input);
return memoryStream.ToArray();
}
}
public CourseList DeSerialize(byte[] data)
{
return Serializer.Deserialize<CourseList>(new MemoryStream(data));
}
چند نکته :
- تقریبا تمامی ابزار های Serialization با Dictionary ها مشکل دارن ، پس از Dictionary ها استفاده نکنین.
- خروجی Protobuf از نوع byte[] هستش یعنی داده واقعی که میتونین توی فایل ذخیره کنین و حتی همونو روی شبکه Transfer کنین ولی خروجی JSON ها Text هستش که این خیلی میتونه دردسر ساز بشه.
- عملکرد Protobuf خیلی سریعتر از Serialization های مایکروسافته ، ضمنا Binary Serialization منسوخ شده (کلیک کنین)