/* Example15_19.cs illustrates binary serialization */ using System; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; // the Customer class gives us something to serialize [Serializable] class Customer { // some private data members private int CustomerNumber; private string CustomerName; private string CustomerCountry; // the WriteCustomer method formats info to the screen public void WriteCustomer() { Console.WriteLine("Customer Number: " + this.CustomerNumber); Console.WriteLine("Customer Name: " + this.CustomerName); Console.WriteLine("Customer Country: " + this.CustomerCountry); } // the constructor accepts all the info to create a customer public Customer( int newCustomerNumber, string newCustomerName, string newCustomerCountry) { this.CustomerNumber = newCustomerNumber; this.CustomerName = newCustomerName; this.CustomerCountry = newCustomerCountry; } } class Example15_19 { public static void Main() { // create a new customer and dump to screen Customer MyCustomer = new Customer(1, "X Corporation", "France"); MyCustomer.WriteCustomer(); // Create a FileStream to hold the serialized customer FileStream serializeStream = new FileStream("c:\\MyCustomer.dat", FileMode.Create); // use the CLR's binary formatting support BinaryFormatter bf = new BinaryFormatter(); // serialize the object bf.Serialize(serializeStream, MyCustomer); serializeStream.Flush(); serializeStream.Close(); // retrieve the serialized version to a second object and dump that FileStream retrieveStream = new FileStream("c:\\MyCustomer.dat", FileMode.Open); Customer NewCustomer = (Customer) bf.Deserialize(retrieveStream); NewCustomer.WriteCustomer(); } }