public KeyValuePair <byte, Dictionary <byte, object> > ToMessageData(INetworkMessage message) { byte messageCode = 0; if (messageTypes.TryGetValue(message.GetType(), out messageCode)) { using (var memoryStream = new MemoryStream()) { var binaryWriter = new BinaryWriter(memoryStream); message.Write(binaryWriter); binaryWriter.Flush(); memoryStream.Flush(); var messageData = new Dictionary <byte, object>() { { 0, memoryStream.ToArray() } }; return(new KeyValuePair <byte, Dictionary <byte, object> >(messageCode, messageData)); } } return(new KeyValuePair <byte, Dictionary <byte, object> >(byte.MaxValue, null)); }