Example #1
0
        /// <summary>
        /// 对象转换XML字符串
        /// </summary>
        /// <typeparam name="valueType">目标数据类型</typeparam>
        /// <param name="value">数据对象</param>
        /// <param name="config">配置参数</param>
        /// <returns>Xml 字符串</returns>
        private string serialize <valueType>(valueType value, SerializeConfig config)
        {
            Config = config ?? DefaultConfig;
            byte *buffer = AutoCSer.UnmanagedPool.Default.Get();

            try
            {
                CharStream.Reset((byte *)buffer, AutoCSer.UnmanagedPool.DefaultSize);
                using (CharStream)
                {
                    serialize(value);
                    return(CharStream.ToString());
                }
            }
            finally { AutoCSer.UnmanagedPool.Default.Push(buffer); }
        }
Example #2
0
        /// <summary>
        /// 对象转换 XML 字符串
        /// </summary>
        /// <typeparam name="valueType">目标数据类型</typeparam>
        /// <param name="value">数据对象</param>
        /// <param name="xmlStream">Xml输出缓冲区</param>
        /// <param name="config">配置参数</param>
        /// <returns>警告提示状态</returns>
        public static SerializeWarning Serialize <valueType>(valueType value, CharStream xmlStream, SerializeConfig config = null)
        {
            Serializer xmlSerializer = YieldPool.Default.Pop() ?? new Serializer();

            try
            {
                return(xmlSerializer.serialize <valueType>(value, xmlStream, config));
            }
            finally { xmlSerializer.free(); }
        }
Example #3
0
 private SerializeWarning serialize <valueType>(valueType value, CharStream xmlStream, SerializeConfig config)
 {
     Config = config ?? DefaultConfig;
     CharStream.From(xmlStream);
     try
     {
         serialize(value);
         return(Warning);
     }
     finally { xmlStream.From(CharStream); }
 }
Example #4
0
 private SerializeResult serializeResult <valueType>(valueType value, SerializeConfig config)
 {
     return(new SerializeResult {
         Xml = serialize(value, config), Warning = Warning
     });
 }