Beispiel #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);
     }
 }