コード例 #1
0
        protected virtual JsonContract CreateContract(Type objectType)
        {
            Type type = Class194.smethod_11(objectType);

            if (smethod_0(objectType))
            {
                return(this.CreatePrimitiveContract(objectType));
            }
            if (Class139.smethod_1(type) == null)
            {
                if (Class139.smethod_2(type) != null)
                {
                    return(this.CreateArrayContract(objectType));
                }
                if (Class139.smethod_3(type) != null)
                {
                    return(this.CreateDictionaryContract(objectType));
                }
                if ((type == typeof(JToken)) || type.IsSubclassOf(typeof(JToken)))
                {
                    return(this.CreateLinqContract(objectType));
                }
                if (Class191.smethod_2(type))
                {
                    return(this.CreateDictionaryContract(objectType));
                }
                if (typeof(IEnumerable).IsAssignableFrom(type))
                {
                    return(this.CreateArrayContract(objectType));
                }
                if (smethod_2(type))
                {
                    return(this.CreateStringContract(objectType));
                }
                if (!this.IgnoreSerializableInterface && typeof(ISerializable).IsAssignableFrom(type))
                {
                    return(this.CreateISerializableContract(objectType));
                }
                if (typeof(IDynamicMetaObjectProvider).IsAssignableFrom(type))
                {
                    return(this.CreateDynamicContract(objectType));
                }
                if (smethod_1(type))
                {
                    return(this.CreatePrimitiveContract(type));
                }
            }
            return(this.CreateObjectContract(objectType));
        }