Esempio n. 1
0
    public unsafe static byte[] Serialize <T>(T body, MessageHeader header) where T : struct
    {
        // serialize header and body
        var headerSize  = MemUtils.Sizeof <MessageHeader>();
        var headerBytes = MemUtils.Copy((byte *)&header, 0, headerSize);
        var bodyBytes   = Serializer.Serialize <T>(body);

        // merge serialized parts into buffer
        var dest = new byte[bodyBytes.Length + headerBytes.Length];

        Buffer.BlockCopy(headerBytes, 0, dest, 0, headerBytes.Length);
        Buffer.BlockCopy(bodyBytes, 0, dest, headerBytes.Length, bodyBytes.Length);

        return(dest);
    }