/// <summary> /// 对象序列化 /// </summary> /// <param name="serializer"></param> protected void toJson(AutoCSer.JsonSerializer serializer) { serializer.CustomWriteNextName("msgtype"); serializer.CallSerialize(msgtype.ToString()); serializer.CustomWriteNextName(msgtype.ToString()); switch (msgtype) { case BulkMessageType.mpnews: serializer.TypeSerialize(ref mpnews); break; case BulkMessageType.text: serializer.TypeSerialize(ref text); break; case BulkMessageType.image: serializer.TypeSerialize(ref image); break; case BulkMessageType.voice: serializer.TypeSerialize(ref voice); break; case BulkMessageType.mpvideo: serializer.TypeSerialize(ref mpvideo); break; case BulkMessageType.wxcard: serializer.TypeSerialize(ref wxcard); break; } serializer.CustomObjectEnd(); }
private void toJson(AutoCSer.JsonSerializer serializer) { serializer.CustomWriteFirstName("name"); serializer.CallSerialize(name); if (type != MenuType.none) { serializer.CustomWriteNextName("type"); serializer.TypeSerialize(ref type); } if (!string.IsNullOrEmpty(key)) { serializer.CustomWriteNextName("key"); serializer.CallSerialize(key); } if (!string.IsNullOrEmpty(url)) { serializer.CustomWriteNextName("url"); serializer.CallSerialize(url); } if (!string.IsNullOrEmpty(media_id)) { serializer.CustomWriteNextName("media_id"); serializer.CallSerialize(media_id); } if (sub_button.length() != 0) { serializer.CustomWriteNextName("sub_button"); serializer.TypeSerialize(sub_button); } serializer.CustomObjectEnd(); }
internal void ToJson(AutoCSer.JsonSerializer serializer) { MemberMap memberMap = MemberMap; if (memberMap == null || memberMap.IsDefault) { serializer.TypeSerialize(Value); } else { MemberMapValueJsonSerializeConfig config = MemberMapValueJsonSerializeConfig.Pop() ?? new MemberMapValueJsonSerializeConfig(); AutoCSer.Json.SerializeConfig oldConfig = serializer.Config; AutoCSer.MemberCopy.Copyer <AutoCSer.Json.SerializeConfig> .Copy(config, oldConfig); (serializer.Config = config).MemberMap = memberMap; try { serializer.TypeSerialize(Value); } finally { serializer.Config = oldConfig; config.MemberMap = null; MemberMapValueJsonSerializeConfig.PushNotNull(config); } } }
private void serialize(AutoCSer.JsonSerializer serializer) { serializer.CharStream.Write('['); serializer.CallSerialize(ClientNodeId); serializer.CharStream.Write(','); Node.Serialize(serializer, Checker); serializer.CharStream.Write(']'); }
/// <summary> /// 释放资源 /// </summary> public void Dispose() { if (serializer != null) { serializer.CharStream.Dispose(); serializer.Free(); serializer = null; } }
protected void serializeParent(AutoCSer.JsonSerializer serializer, ServerNodeIdChecker checker) { if (Parent != null) { serializer.CharStream.Write(','); Parent.Serialize(serializer, checker); } serializer.CharStream.Write(']'); }
internal void JsonSerialize <valueType>(ref valueType value) where valueType : struct { if (OutputJsonSerializer == null) { OutputJsonSerializer = AutoCSer.JsonSerializer.YieldPool.Default.Pop() ?? new AutoCSer.JsonSerializer(); OutputJsonSerializer.SetTcpServer(); } OutputJsonSerializer.SerializeTcpServer(ref value, OutputSerializer.Stream); }
protected override void serializeParameter(AutoCSer.JsonSerializer serializer) { #region LOOP IntputParameters #region IF ParameterType.IsNull base.serializeParameter(serializer, @ParameterName); #endregion IF ParameterType.IsNull #region NOT ParameterType.IsNull base.serializeParameterStruct(serializer, ref @ParameterName); #endregion NOT ParameterType.IsNull #endregion LOOP IntputParameters }
protected void serializeParameter <parameterType>(AutoCSer.JsonSerializer serializer, parameterType parameter) { if (parameter == null) { serializer.CharStream.WriteJsonNull(); } else { AutoCSer.Json.TypeSerializer <parameterType> .ClassSerialize(serializer, parameter); } }
protected void freeSerializer() { if (OutputSerializer != null) { OutputSerializer.Free(); OutputSerializer = null; if (OutputJsonSerializer != null) { OutputJsonSerializer.Free(); OutputJsonSerializer = null; } } }
/// <summary> /// DataReader JSON 序列化 /// </summary> /// <param name="isSignle">是否单条记录,否则为数组</param> /// <param name="serializeConfig"></param> /// <param name="isIgnoreNull">是否忽略 null</param> public DataReaderJsonSerialize(bool isSignle, SerializeConfig serializeConfig = null, bool isIgnoreNull = true) { this.isIgnoreNull = isIgnoreNull; serializer = AutoCSer.JsonSerializer.YieldPool.Default.Pop() ?? new AutoCSer.JsonSerializer(); serializer.SetTcpServer(); serializer.Config = serializeConfig ?? AutoCSer.JsonSerializer.DefaultConfig; serializer.CharStream.Reset(); if (!isSignle) { serializer.CustomArrayStart(); serializers = EmptyArray <Action <AutoCSer.JsonSerializer, object> > .Array; } }
private void toJson(AutoCSer.JsonSerializer serializer) { if (scene_str == null) { serializer.CustomWriteFirstName("scene_id"); serializer.CallSerialize(scene_id); } else { serializer.CustomWriteFirstName("scene_str"); serializer.CallSerialize(scene_str); } serializer.CustomObjectEnd(); }
internal void ToJson(AutoCSer.JsonSerializer serializer) { if (MemberMap == null || MemberMap.IsDefault) { serializer.TypeSerialize(Value); } else { AutoCSer.Metadata.MemberMap memberMap = serializer.SetCustomMemberMap(MemberMap); try { serializer.TypeSerialize(Value); } finally { serializer.SetCustomMemberMap(memberMap); } } }
private unsafe void toJson(AutoCSer.JsonSerializer serializer) { if (card_ext.signature == null) { AutoCSer.LogHelper.Debug("卡券扩展 签名为空", LogLevel.Debug | LogLevel.Info | LogLevel.AutoCSer); serializer.CharStream.WriteJsonObject(); } else { serializer.CustomWriteFirstName("card_id"); serializer.CallSerialize(card_id); serializer.CustomWriteNextName("card_ext"); serializer.CallSerialize(AutoCSer.JsonSerializer.Serialize(card_ext)); serializer.CustomObjectEnd(); } }
private static void serialize(AutoCSer.JsonSerializer serializer, ReturnValue value) { if (value == null) { serializer.CharStream.WriteJsonArray(); } else { CharStream jsonStream = serializer.CharStream; jsonStream.Write('['); serializer.CallSerialize(value.ClientNodeId); jsonStream.Write(','); value.serialize(serializer); jsonStream.Write(']'); } }
private void toJson(AutoCSer.JsonSerializer serializer) { serializer.CustomWriteFirstName("action_name"); if (expire_seconds == 0) { serializer.CallSerialize(action_info.scene.scene_str == null ? "QR_LIMIT_SCENE" : "QR_LIMIT_STR_SCENE"); } else { serializer.CallSerialize("QR_SCENE"); serializer.CustomWriteNextName("expire_seconds"); serializer.CallSerialize(expire_seconds); } serializer.CustomWriteNextName("action_info"); serializer.TypeSerialize(ref action_info); serializer.CustomObjectEnd(); }
/// <summary> /// 对象序列化 /// </summary> /// <param name="serializer"></param> private void toJson(AutoCSer.JsonSerializer serializer) { serializer.CustomWriteFirstName("touser"); serializer.CallSerialize(touser); serializer.CustomWriteNextName("msgtype"); serializer.CallSerialize(msgtype.ToString()); serializer.CustomWriteNextName(msgtype.ToString()); switch (msgtype) { case MessageType.news: serializer.TypeSerialize(ref news); break; case MessageType.text: serializer.TypeSerialize(ref text); break; case MessageType.image: serializer.TypeSerialize(ref image); break; case MessageType.voice: serializer.TypeSerialize(ref voice); break; case MessageType.video: serializer.TypeSerialize(ref video); break; case MessageType.music: serializer.TypeSerialize(ref music); break; case MessageType.wxcard: serializer.TypeSerialize(ref wxcard); break; } if (customservice.kf_account != null) { serializer.CustomWriteNextName("customservice"); serializer.TypeSerialize(ref customservice); } serializer.CustomObjectEnd(); }
/// <summary> /// 对象序列化 /// </summary> /// <param name="serializer"></param> private void toJson(AutoCSer.JsonSerializer serializer) { if (string.IsNullOrEmpty(towxname)) { serializer.CustomWriteFirstName("touser"); serializer.CallSerialize(touser); } else { serializer.CustomWriteFirstName("towxname"); serializer.CallSerialize(towxname); } serializer.CustomWriteNextName("msgtype"); serializer.CallSerialize(msgtype.ToString()); serializer.CustomWriteNextName(msgtype.ToString()); switch (msgtype) { case BulkMessageType.text: serializer.TypeSerialize(ref text); break; case BulkMessageType.image: serializer.TypeSerialize(ref image); break; case BulkMessageType.voice: serializer.TypeSerialize(ref voice); break; case BulkMessageType.mpvideo: serializer.TypeSerialize(ref mpvideo); break; case BulkMessageType.mpnews: serializer.TypeSerialize(ref mpnews); break; case BulkMessageType.wxcard: serializer.TypeSerialize(ref wxcard); break; } serializer.CustomObjectEnd(); }
internal void FreeSerializer() { OutputStream = null; if (ReceiveDeSerializer != null) { ReceiveDeSerializer.Free(); ReceiveDeSerializer = null; } if (ReceiveJsonParser != null) { ReceiveJsonParser.Free(); ReceiveJsonParser = null; } if (OutputSerializer != null) { OutputSerializer.Free(); OutputSerializer = null; } if (OutputJsonSerializer != null) { OutputJsonSerializer.Free(); OutputJsonSerializer = null; } }
/// <summary> /// 序列化数据值 /// </summary> /// <param name="serializer"></param> /// <param name="value"></param> private static void serializeByteArray(AutoCSer.JsonSerializer serializer, object value) { serializer.CallSerialize((byte[])value); }
/// <summary> /// 序列化数据值 /// </summary> /// <param name="serializer"></param> /// <param name="value"></param> private static void serializeBool(AutoCSer.JsonSerializer serializer, object value) { serializer.CallSerialize((bool)value); }
private static void toJson(AutoCSer.JsonSerializer serializer, Message value) { value.toJson(serializer); }
private void toJson(AutoCSer.JsonSerializer toJsoner) { new AutoCSer.Metadata.MemberMapValue <memberMapType> { MemberMap = MemberMap, Value = Value }.ToJson(toJsoner); }
/// <summary> /// 序列化数据值 /// </summary> /// <param name="serializer"></param> /// <param name="value"></param> private static void serializeULong(AutoCSer.JsonSerializer serializer, object value) { serializer.CallSerialize((ulong)value); }
private static void toJson(AutoCSer.JsonSerializer serializer, OpenIdMessage value) { serializer.CustomWriteFirstName("touser"); serializer.TypeSerialize(value.touser); value.toJson(serializer); }
/// <summary> /// 序列化数据值 /// </summary> /// <param name="serializer"></param> /// <param name="value"></param> private static void serializeSByte(AutoCSer.JsonSerializer serializer, object value) { serializer.CallSerialize((sbyte)value); }
internal static void Serialize(AutoCSer.JsonSerializer serializer, CustomClass value) { serializer.CharStream.Write(value.Value == null ? '1' : '2'); }
/// <summary> /// 序列化数据值 /// </summary> /// <param name="serializer"></param> /// <param name="value"></param> private static void serializeShort(AutoCSer.JsonSerializer serializer, object value) { serializer.CallSerialize((short)value); }
/// <summary> /// 创建命令输入数据 /// </summary> /// <typeparam name="inputParameterType"></typeparam> /// <param name="commandInfo"></param> /// <param name="inputParameter"></param> /// <param name="clientBuffer"></param> private unsafe void build <inputParameterType>(TcpServer.CommandInfoBase commandInfo, ref inputParameterType inputParameter, ref ClientBuffer clientBuffer) where inputParameterType : struct { byte *start = outputStream.Data.Byte; outputStream.Data.CurrentIndex = sizeof(uint) + sizeof(int); if ((commandInfo.CommandFlags & TcpServer.CommandFlags.JsonSerialize) == 0) { if (commandInfo.SimpleSerializeInputParamter == 0) { int parameterIndex = commandInfo.InputParameterIndex; if (serializeParameterIndex == parameterIndex) { outputSerializer.SerializeTcpServerNext(ref inputParameter); } else { outputSerializer.SerializeTcpServer(ref inputParameter); serializeParameterIndex = parameterIndex; } } else { SimpleSerialize.TypeSerializer <inputParameterType> .Serializer(outputStream, ref inputParameter); } } else { if (outputJsonSerializer == null) { outputJsonSerializer = AutoCSer.JsonSerializer.YieldPool.Default.Pop() ?? new AutoCSer.JsonSerializer(); outputJsonSerializer.SetTcpServer(); } outputJsonSerializer.SerializeTcpServer(ref inputParameter, outputSerializer.Stream); } int dataLength = outputStream.Data.CurrentIndex - (sizeof(uint) + sizeof(int)); if (dataLength <= maxInputSize) { byte *write = outputStream.Data.Byte; *(uint *)write = (uint)commandInfo.Command | (uint)commandInfo.CommandFlags; *(int *)(write + sizeof(uint)) = dataLength; if (outputStream.Data.CurrentIndex <= Buffer.Length) { if (start != write) { AutoCSer.Memory.Common.CopyNotNull(write, start, outputStream.Data.CurrentIndex); } clientBuffer.Data.Set(Buffer.Buffer, Buffer.StartIndex, outputStream.Data.CurrentIndex); } else { outputStream.Data.GetSubBuffer(ref clientBuffer.CopyBuffer); clientBuffer.SetSendDataCopyBuffer(outputStream.Data.CurrentIndex); if (clientBuffer.CopyBuffer.Length <= SendBufferMaxSize) { Buffer.Free(); clientBuffer.CopyBuffer.CopyToClear(ref Buffer); } } if (dataLength < MinCompressSize || !clientBuffer.CompressSendData(dataLength, SendMarkData)) { if (SendMarkData == 0) { clientBuffer.IsError = true; } else { clientBuffer.MarkSendData(dataLength, SendMarkData); } } } }
/// <summary> /// 序列化数据值 /// </summary> /// <param name="serializer"></param> /// <param name="value"></param> private static void serializeUInt(AutoCSer.JsonSerializer serializer, object value) { serializer.CallSerialize((uint)value); }