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; }
}
}