示例#1
0
        /// <summary>
        /// Parse json to object
        /// </summary>
        /// <param name="instance">object instance</param>
        /// <param name="adapter">Json Data Adapter</param>
        /// <param name="initType">Init FIELD or PROPERTY or All</param>
        /// <returns>object</returns>
        private static object FromJson(object instance, LsonAdapter adapter, INITTYPE initType = INITTYPE.ALL)
        {
            if (instance == null)
            {
                Debug.Log("Lson:Instance cant be null");
                return(null);
            }
            Type type = instance.GetType();

            FieldInfo[]    fieldInfos    = type.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
            PropertyInfo[] propertyInfos = type.GetProperties(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
            switch (initType)
            {
            case INITTYPE.ALL:
                SetValues(adapter, instance, fieldInfos);
                SetValues(adapter, instance, propertyInfos);
                break;

            case INITTYPE.FIELD:
                SetValues(adapter, instance, fieldInfos);
                break;

            case INITTYPE.PROPERTY:
                SetValues(adapter, instance, propertyInfos);
                break;
            }
            if (typeof(ILsonBean).IsAssignableFrom(type))
            {
                type.GetMethod("AfterInit").Invoke(instance, null);
            }
            return(instance);
        }
示例#2
0
        /// <summary>
        /// Parse json to object
        /// </summary>
        /// <typeparam name="T">Type</typeparam>
        /// <param name="adapter">Json Data Adapter</param>
        /// <param name="initType">Init FIELD or PROPERTY or All</param>
        /// <returns>object</returns>
        public static T FormJsonByLsonAttribute <T>(LsonAdapter adapter, INITTYPE initType = INITTYPE.ALL)
        {
            T instance = System.Activator.CreateInstance <T>();

            FormJsonByLsonAttribute(instance, adapter, initType);
            return(instance);
        }