C# BinaryFormatter Serialize and Deserialize
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace WpfApp291 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); //BinaryFormatterSerializeDemo(); BinaryFormatterDeserializeDemo(); } private void BinaryFormatterDeserializeDemo() { if (File.Exists("bin.data")) { using (FileStream fs = new FileStream("bin.data", FileMode.OpenOrCreate, FileAccess.ReadWrite)) { BinaryFormatter binFormatter = new BinaryFormatter(); var bks = (List<Book>)binFormatter.Deserialize(fs); fs.Close(); } } } private void BinaryFormatterSerializeDemo() { List<Book> books = new List<Book>(); for (int i = 0; i < 10000; i++) { books.Add(new Book() { Id = i, Name = $"Name_{i}", Title = $"Title_{i}", Topic = $"Topic_{i}" }); } using (FileStream fs = new FileStream("bin.data", FileMode.OpenOrCreate, FileAccess.ReadWrite)) { BinaryFormatter binFormatter = new BinaryFormatter(); binFormatter.Serialize(fs, books); fs.Close(); } } } [Serializable] class Book { public int Id { get; set; } public string Name { get; set; } public string Title { get; set; } public string Topic { get; set; } } }