using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; namespace ConsoleApplication1 { class Program { public class Product { public long Id; public string Name; public double Price; [NonSerialized] string Notes; public Product(long id, string name, double price, string notes) { Id = id; Name = name; Price = price; Notes = notes; } public override string ToString() { return String.Format("{0}: {1} (${2:F2}) {3}", Id, Name, Price, Notes); } } static void Main(string[] args) { try { List < Product > products = new List<Product>(); products.Add(new Product(1, "Spiky Pung", 1000.0, "Good stuff.")); products.Add(new Product(2, "Gloop Falloop Soup", 25.0, "Taste")); products.Add(new Product(4, "Hat Sauce", 12.0, "One for the kids")); foreach (Product product in products) { Console.WriteLine(product); } Console.WriteLine(); IFormatter serializer = new BinaryFormatter(); FileStream saveFile = new FileStream("Products.bin", FileMode.Create, FileAccess.Write); serializer.Serialize(saveFile, products); saveFile.Close(); FileStream loadFile = new FileStream("Products.bin", FileMode.Open, FileAccess.Read); List<Product> savedProducts = serializer.Deserialize(loadFile) as List<Product>; loadFile.Close(); foreach (Product product in savedProducts) { Console.WriteLine(product); } } catch(SerializationException e) { Console.WriteLine("A serialization exception has been thrown"); Console.WriteLine(e.Message); } catch (IOException e) { Console.WriteLine("An IO exception has been thrown"); Console.WriteLine(e.ToString()); } } } }