Esempio n. 1
0
 /// <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;
     }));
 }
Esempio n. 2
0
        /// <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());
        }