/// <summary> /// 反序列化报表模板 /// </summary> /// <param name="p_define"></param> /// <returns></returns> internal static Task <RptRoot> DeserializeTemplate(string p_define) { return(Task.Run(() => { RptRoot root = new RptRoot(); if (!string.IsNullOrEmpty(p_define)) { try { using (StringReader stream = new StringReader(p_define)) { using (XmlReader reader = XmlReader.Create(stream, new XmlReaderSettings() { IgnoreWhitespace = true, IgnoreComments = true, IgnoreProcessingInstructions = true })) { reader.Read(); root.ReadXml(reader); } } } catch (Exception ex) { throw new Exception(string.Format("反序列化报表模板时异常:{0}", ex.Message)); } } return root; })); }
/// <summary> /// 序列化报表模板 /// </summary> /// <param name="p_root"></param> /// <returns></returns> internal static string SerializeTemplate(RptRoot p_root) { if (p_root == null) { return(""); } p_root.OnBeforeSerialize(); StringBuilder sb = new StringBuilder(); using (XmlWriter writer = XmlWriter.Create(sb, new XmlWriterSettings() { OmitXmlDeclaration = true, Indent = true })) { p_root.WriteXml(writer); writer.Flush(); } p_root.OnAfterSerialize(); return(sb.ToString()); }