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;
}
}