Mega Code Archive

 
Categories / C# / Generics
 

Serialization for generic type

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);     }