namespace Oculus.Platform.Models { using UnityEngine; using System.Collections; using System.Collections.Generic; using Oculus.Platform.Models; public class DeserializableList : IList { //IList public int Count { get { return _Data.Count; } } bool ICollection.IsReadOnly { get { return ((IList)_Data).IsReadOnly; } } //if you insist in getting it... public int IndexOf(T obj) { return _Data.IndexOf(obj); } public T this[int index] { get { return _Data[index]; } set { _Data[index] = value; } } public void Add(T item) { _Data.Add(item); } public void Clear() { _Data.Clear(); } public bool Contains(T item) { return _Data.Contains(item); } public void CopyTo(T[] array, int arrayIndex) { _Data.CopyTo(array, arrayIndex); } public IEnumerator GetEnumerator() { return _Data.GetEnumerator(); } public void Insert(int index, T item) { _Data.Insert(index, item); } public bool Remove(T item) { return _Data.Remove(item); } public void RemoveAt(int index) { _Data.RemoveAt(index); } // taken from examples here: https://msdn.microsoft.com/en-us/library/s793z9y2(v=vs.110).aspx private IEnumerator GetEnumerator1() { return this.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator1(); } // Internals and getters // Seems like Obsolete properties are broken in this version of Mono. // Anyway, don't use this. [System.Obsolete("Use IList interface on the DeserializableList object instead.", false)] public List Data { get { return _Data; } } protected List _Data; protected string _NextUrl; protected string _PreviousUrl; public bool HasNextPage { get { return !System.String.IsNullOrEmpty(NextUrl); } } public bool HasPreviousPage { get { return !System.String.IsNullOrEmpty(PreviousUrl); } } public string NextUrl { get { return _NextUrl; } } public string PreviousUrl { get { return _PreviousUrl; } } } }