UnityEngine.Serialization.UnitySurrogateSelector.GetSurrogate C# (CSharp) Method

GetSurrogate() public method

public GetSurrogate ( Type type, StreamingContext context, ISurrogateSelector &selector ) : ISerializationSurrogate
type Type
context StreamingContext
selector ISurrogateSelector
return ISerializationSurrogate
        public ISerializationSurrogate GetSurrogate(Type type, StreamingContext context, out ISurrogateSelector selector)
        {
            if (type.IsGenericType)
            {
                Type genericTypeDefinition = type.GetGenericTypeDefinition();
                if (genericTypeDefinition == typeof(List<>))
                {
                    selector = this;
                    return ListSerializationSurrogate.Default;
                }
                if (genericTypeDefinition == typeof(Dictionary<,>))
                {
                    selector = this;
                    return (ISerializationSurrogate) Activator.CreateInstance(typeof(DictionarySerializationSurrogate<,>).MakeGenericType(type.GetGenericArguments()));
                }
            }
            selector = null;
            return null;
        }
    }