//---------------------------------------------------------------------- static bool CanSerialiseEnumerable(System.Type _type) { //array if (_type.IsArray) { return(CanSerialiseType(_type.GetElementType())); } //list<T> if (!_type.IsGenericType || _type.GetGenericTypeDefinition() != typeof(List <>)) { return(false); } var parameters = _type.GetGenericArguments(); if (parameters.Length > 1) { return(false); } return(CanSerialiseType(parameters[0])); }
//---------------------------------------------------------------------- static bool CanSerialiseGenericList(System.Type _type) { if (!SUPPORT_LISTS) { return(false); } if (!_type.IsGenericType || _type.GetGenericTypeDefinition() != typeof(List <>)) { return(false); } var parameters = _type.GetGenericArguments(); if (parameters.Length > 1) { return(false); } var param = !parameters[0].IsEnum ? parameters[0] : typeof(System.Enum); return(UnitySerialiseFieldByType.ContainsKey(param)); }