using System; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.IO; public class Test{ public static void Main(string [] args){ BinaryFormatter binary=new BinaryFormatter(); FileStream file= new FileStream("test.dat", FileMode.OpenOrCreate); MyGenericClass<int> obj=new MyGenericClass<int>(5); binary.Serialize(file, obj); } } [Serializable] public class MyGenericClass<T> { public MyGenericClass(T init) { fielda=init; } public void GetObjectData(SerializationInfo info,StreamingContext ctx) { info.AddValue("fielda", fielda, typeof(T)); } private MyGenericClass(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); }