/// <summary>
 /// 释放资源
 /// </summary>
 public void Dispose()
 {
     if (serializer != null)
     {
         serializer.CharStream.Dispose();
         serializer.Free();
         serializer = null;
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 对象转换 JSON 字符串
        /// </summary>
        /// <typeparam name="valueType">目标数据类型</typeparam>
        /// <param name="value">数据对象</param>
        /// <param name="onSerializeStream">序列化以后的数据流处理事件</param>
        /// <param name="config">配置参数</param>
        public static SerializeWarning Serialize <valueType>(ref valueType value, Action <CharStream> onSerializeStream, SerializeConfig config = null)
        {
            if (onSerializeStream == null)
            {
                throw new ArgumentNullException();
            }
            Serializer jsonSerializer = YieldPool.Default.Pop() ?? new Serializer();

            try
            {
                jsonSerializer.serialize <valueType>(ref value, onSerializeStream, config);
                return(jsonSerializer.Warning);
            }
            finally { jsonSerializer.Free(); }
        }