Serializzare/Deserializzare classe generica

 
public class UtilitySerializer
    {
 
        public static void Serializza<T>(T obj, string filename) 
        {
            XmlSerializer xmlS = new XmlSerializer(typeof(T));
            using (Stream streamf = File.Open(filename, FileMode.Create, FileAccess.Write))
            {
                xmlS.Serialize(streamf, obj);
            }
        }
 
        public static T DeSerializza<T>(string filename)
        {
            XmlSerializer xmlS = new XmlSerializer(typeof(T));
            T tmpRis = default(T);
            using (Stream streamf = File.Open(filename, FileMode.Open, FileAccess.Read ))
            {
               tmpRis= (T)xmlS.Deserialize(streamf);
            }
            return tmpRis;
        }
    }