public static TEvent Reassemble <TEvent>(MemoryStream stream, IEventFragment lastFragment) where TEvent : Event { stream.Write(lastFragment.Bytes, 0, lastFragment.Bytes.Length); stream.Seek(0, SeekOrigin.Begin); Packet.Deserialize(stream, out TEvent evt, null); stream.Dispose(); return(evt); }
public static TEvent Reassemble <TEvent>(IEnumerable <IEventFragment> earlierFragments, IEventFragment lastFragment) where TEvent : Event { using (var stream = new MemoryStream()) { foreach (var x in earlierFragments) { stream.Write(x.Bytes, 0, x.Bytes.Length); } stream.Write(lastFragment.Bytes, 0, lastFragment.Bytes.Length); stream.Seek(0, SeekOrigin.Begin); Packet.Deserialize(stream, out TEvent evt, null); return(evt); } }