实体类写入xml文件,并读取xml文件转换为实体类
1.实体类写入xml文件
public static string XmlSerialize<T>(T obj) { try { using (System.IO.StringWriter stringWriter = new StringWriter(new StringBuilder())) { // 强制指定命名空间,覆盖默认的命名空间 XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(); namespaces.Add(string.Empty, string.Empty); XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType()); xmlSerializer.Serialize(stringWriter, obj, namespaces); //删除部分头文件 string path = Directory.GetCurrentDirectory() + "\\"; FileStream fs = new FileStream(path + "cableLoss.xml", FileMode.Create); StreamWriter sw = new StreamWriter(fs); string sb = stringWriter.ToString(); string endstring = sb.Substring(sb.LastIndexOf("?>") + 2); //字符串截取去掉XML头部 sw.Write(endstring); sw.Close(); fs.Close(); return endstring; } } catch (Exception ex) { return null; } }
2.xml文件转化为实体类
public static T XmlToObject<T>() where T : class { string path = Directory.GetCurrentDirectory() + "\\"; XmlSerializer serializer = new XmlSerializer(typeof(T)); FileStream fs = new FileStream(path + "cableLoss.xml", FileMode.Open); T t = (T)serializer.Deserialize(fs); fs.Close(); return t; }
3.实体类标识
[Serializable, XmlType("class")]
public class CableLoss { [XmlElement("dicCUCableLoss")] public List<string> listCUCableLoss; [XmlElement("SACableLoss")] public double SACableLoss { get; set; } [XmlElement("SGCableLoss")] public double SGCableLoss { get; set; } [XmlElement("CWSGCableLoss")] public double CWSGCableLoss { get; set; } // [XmlAttribute] }
4.写入xml文件调用
XmlSerialize<CableLoss>(cableloss);
5.读取xml文件调用
CableLoss cableLoss= XmlToObject<CableLoss>();

浙公网安备 33010602011771号