/// <summary> /// Reads events from a portable reader. /// </summary> /// <typeparam name="T">Event type.</typeparam> /// <param name="portableReader">Reader.</param> /// <returns>Resulting list or null.</returns> protected static List <T> ReadEvents <T>(PortableReaderImpl portableReader) where T : IEvent { var count = portableReader.RawReader().ReadInt(); if (count == -1) { return(null); } var result = new List <T>(count); for (var i = 0; i < count; i++) { result.Add(EventReader.Read <T>(portableReader)); } return(result); }