Example #1
0
 /// <summary>
 /// 引用类型对象解析
 /// </summary>
 /// <param name="jsonDeSerializer">Json解析器</param>
 /// <param name="value">目标数据</param>
 private static void deSerializeClass(JsonDeSerializer jsonDeSerializer, ref T value)
 {
     if (jsonDeSerializer.SearchObject())
     {
         if (value == null)
         {
             if (AutoCSer.Metadata.DefaultConstructor <T> .Type == DefaultConstructorType.None)
             {
                 jsonDeSerializer.CheckNoConstructor(ref value, isAnonymousType);
                 if (value == null)
                 {
                     return;
                 }
             }
             else
             {
                 value = AutoCSer.Metadata.DefaultConstructor <T> .Constructor();
             }
         }
         else if (isAnonymousType)
         {
             jsonDeSerializer.SetAnonymousType(value);
         }
         DeSerializeMembers(jsonDeSerializer, ref value);
     }
     else
     {
         if (value != null && isAnonymousType)
         {
             jsonDeSerializer.SetAnonymousType(value);
         }
         value = default(T);
     }
 }
Example #2
0
 internal static void DeSerializeValue(JsonDeSerializer jsonDeSerializer, ref T value)
 {
     if (jsonDeSerializer.SearchObject())
     {
         DeSerializeMembers(jsonDeSerializer, ref value);
     }
     else
     {
         value = default(T);
     }
 }
Example #3
0
 internal static void DeSerializeTcpServer(JsonDeSerializer deSerializer, ref T value)
 {
     if (DefaultDeSerializer == null)
     {
         if (deSerializer.SearchObject())
         {
             DeSerializeMembers(deSerializer, ref value);
         }
         else
         {
             value = default(T);
         }
     }
     else
     {
         DefaultDeSerializer(deSerializer, ref value);
     }
 }