public ICollection <TValue> ReadCollection <TValue>() { var token = ReadUInt64(); object value; if (readCache.TryGetValue(token, out value)) { return((ICollection <TValue>)value); } var type = ReadType(); var collection = (ICollection <TValue>)Activator.CreateInstance(type); readCache.Add(token, collection); var reader = new Deserializer(this); var readMethod = ReadMethods <TValue> .Get(); for (int i = 0; i < reader.WriteCount; i++) { collection.Add(readMethod(reader)); } return(collection); }
public TValue ReadEnum <TValue>() { return(ReadMethods <TValue> .Get()(this)); }