public static List<object> Deserialize(ActorSystem system, ByteString message) { var result = new List<object>(); while (!message.IsEmpty) { var seriliazerId = BitConverter.ToInt32(message.Take(SeriliazerIdBytesCount).ToArray(), 0); var messageLength = BitConverter.ToInt32(message.Skip(SeriliazerIdBytesCount).Take(MessageLengthBytesCount).ToArray(), 0); var messageBytes = message.Skip(CompletePrefixBytesCount).Take(messageLength).ToArray(); var seriliazer = system.Serialization.GetSerializerById(seriliazerId); result.Add(seriliazer.FromBinary(messageBytes, typeof(object))); message = message.Drop(CompletePrefixBytesCount + messageLength); } return result; }