internal static byte[] AssembleByteData(IMessage message) { if(!DeliveryRegistry.IsMessageRegisterd(message)) throw new Exception("Message conversion error: Not registered"); //Create new BinaryWriter BinaryWriter binWriter = new BinaryWriter(new MemoryStream()); //Write header to byte steam MessageHeader.ToBytes(binWriter, DeliveryRegistry.GetMessageDiscriminant(message)); //Convert message to byte steam message.WritePayload(binWriter); //Convert byte stream into byte array byte[] byteData = ((MemoryStream)binWriter.BaseStream).ToArray(); //Dispose unused stuff binWriter.Dispose(); //Return byte stream return byteData; }