public PublishingMessage()

in csharp/rocketmq-client-csharp/PublishingMessage.cs [36:77]


        public PublishingMessage(Message message, PublishingSettings publishingSettings, bool txEnabled) : base(
            message)
        {
            var maxBodySizeBytes = publishingSettings.GetMaxBodySizeBytes();
            if (message.Body.Length > maxBodySizeBytes)
            {
                throw new IOException($"Message body size exceed the threshold, max size={maxBodySizeBytes} bytes");
            }

            // Generate message id.
            MessageId = MessageIdGenerator.GetInstance().Next();
            // For NORMAL message.
            if (string.IsNullOrEmpty(message.MessageGroup) && !message.DeliveryTimestamp.HasValue &&
                !txEnabled)
            {
                MessageType = MessageType.Normal;
                return;
            }

            // For FIFO message.
            if (!string.IsNullOrEmpty(message.MessageGroup) && !txEnabled)
            {
                MessageType = MessageType.Fifo;
                return;
            }

            // For DELAY message.
            if (message.DeliveryTimestamp.HasValue && !txEnabled)
            {
                MessageType = MessageType.Delay;
                return;
            }

            // For TRANSACTION message.
            if (!string.IsNullOrEmpty(message.MessageGroup) || message.DeliveryTimestamp.HasValue || !txEnabled)
            {
                throw new InternalErrorException(
                    "Transactional message should not set messageGroup or deliveryTimestamp");
            }

            MessageType = MessageType.Transaction;
        }