UnityEngine.Serialization.ListSerializationSurrogate.SetObjectData C# (CSharp) Method

SetObjectData() public method

public SetObjectData ( object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector ) : object
obj object
info System.Runtime.Serialization.SerializationInfo
context System.Runtime.Serialization.StreamingContext
selector ISurrogateSelector
return object
        public object SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector)
        {
            IList list = (IList) Activator.CreateInstance(obj.GetType());
            int num = info.GetInt32("_size");
            if (num != 0)
            {
                IEnumerator enumerator = ((IEnumerable) info.GetValue("_items", typeof(IEnumerable))).GetEnumerator();
                for (int i = 0; i < num; i++)
                {
                    if (!enumerator.MoveNext())
                    {
                        throw new InvalidOperationException();
                    }
                    list.Add(enumerator.Current);
                }
            }
            return list;
        }
    }