/// <summary> /// 释放资源 /// </summary> public void Dispose() { if (serializer != null) { serializer.CharStream.Dispose(); serializer.Free(); serializer = null; } }
/// <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(); } }