public static void SaveObject(System.Object o, System.Collections.Generic.List<System.String> sl) { System.Data.DataTable dt = new DataTable(o.GetType().Name); System.Collections.Generic.List<System.Data.DataColumn> keys = new List<DataColumn>(); foreach (System.Reflection.PropertyInfo pi in o.GetType().GetProperties()) { if (pi.CanRead && pi.CanWrite) { System.Data.DataColumn dc = dt.Columns.Add(pi.Name, pi.PropertyType); if (sl.Contains(dc.ColumnName)) { keys.Add(dc); } } } if (keys.Count > 0) dt.PrimaryKey = keys.ToArray(); System.Data.DataRow dr = dt.NewRow(); foreach (System.Reflection.PropertyInfo pi in o.GetType().GetProperties()) { if (pi.CanRead && pi.CanWrite) { dr[pi.Name] = pi.GetValue(o, null); } } dt.Rows.Add(dr); dt.AcceptChanges(); dt.WriteXml(dt.TableName + ".xml", XmlWriteMode.WriteSchema); } 转载于:https://www.cnblogs.com/cgzwwy/articles/1137811.html