public class Test<T> { public List<T> GetList(string str) { DataContractSerializer dcs = new DataContractSerializer(typeof(List<T>)); XmlReader xr = XmlReader.Create(new StringReader(str)); List<T> lt = (List<T>)dcs.ReadObject(xr); xr.Close(); return lt; } public string WriteList(List<T> lt) { DataContractSerializer dcs = new DataContractSerializer(typeof(List<T>)); StringBuilder sb = new StringBuilder(); XmlWriter writer = XmlWriter.Create(sb); dcs.WriteObject(writer, lt); writer.Close(); return sb.ToString(); } }