using System; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.IO; public class Starter { public static void Main(string[] args) { BinaryFormatter binary = new BinaryFormatter(); FileStream file = new FileStream("data.bin", FileMode.OpenOrCreate); MyClass<int> obj = new MyClass<int>(5); binary.Serialize(file, obj); MyClass<int> obj1 = (MyClass<int>) binary.Deserialize(file); Console.WriteLine(obj1.GetValue()); } } [Serializable] public class MyClass<T> { public MyClass(T init) { fielda = init; } public void GetObjectData(SerializationInfo info,StreamingContext ctx) { info.AddValue("fielda", fielda, typeof(T)); } private MyClass(SerializationInfo info,StreamingContext ctx) { fielda = (T)info.GetValue("fielda", typeof(T)); } public void SetValue(T data) { fielda = data; } public T GetValue() { return fielda; } private T fielda = default(T); }