Mega Code Archive

 
Categories / C# / File Stream
 

Extends IDeserializationCallback

using System; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.IO; [Serializable] public class BookRecord : IDeserializationCallback {     public String title;     public int asin;     [NonSerialized]     public int rank;     public BookRecord(String title, int asin) {         this.title = title;         this.asin = asin;         rank = GetSalesRank();     }     public int GetSalesRank() {         Random r = new Random();         return r.Next(5000);     }     public void OnDeserialization(Object o) {         rank = GetSalesRank();     } } public class StreamObject {     public static void Main() {         BookRecord book = new BookRecord("title", 123456789);         Console.WriteLine(book.title + " " + book.asin +" " + book.rank);         FileStream stream = new FileStream(@"book.obj", FileMode.Create);         BinaryFormatter bf = new BinaryFormatter();         bf.Serialize(stream, book);         stream.Close();         FileStream streamIn = new FileStream(@"book.obj", FileMode.Open);         BookRecord bookIn = (BookRecord)bf.Deserialize(streamIn);         Console.WriteLine(bookIn.title + " " + bookIn.asin + " " + bookIn.rank);     } }