//----------------------------------------------------------------------
    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]));
    }
예제 #2
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));
    }