public virtual byte[] ToBytes()
        {
            Rectify();

            var result = new List <byte>();

            result.AddRange(Message.ToBytes());

            if (Message.TargetNameLength > 0)
            {
                result.AddRange(TargetNameBytes);
            }

            if (Message.TargetInfosLength > 0)
            {
                result.AddRange(TargetInfosBytes);
            }

            return(result.ToArray());
        }