Пример #1
0
        /// <summary>
        /// 将dto消息发布到指定的交换机
        /// </summary>
        /// <param name="message"></param>
        public void Publish(string exchange, string routingKey, DTObject message, Action <IBasicProperties> setProperties = null)
        {
            var body       = message.ToData();
            var properties = this.Channel.CreateBasicProperties();

            properties.ContentEncoding = "utf-8";
            properties.ContentType     = "text/plain";

            if (setProperties != null)
            {
                setProperties(properties);
            }

            if (this.Policy.PersistentMessages)
            {
                properties.Persistent = true;
                if (!ConfirmPublish(exchange, routingKey, properties, body))
                {
                    throw new RabbitMQException(string.Format(Strings.PublishMessageFailed, message.GetCode()));
                }
            }
            else
            {
                properties.Persistent = false;
                this.Channel.BasicPublish(exchange, routingKey, properties, body);
            }
        }
Пример #2
0
 private static byte[] Map(DTObject dto)
 {
     return(dto == null || dto.IsEmpty() ? Array.Empty <byte>() : dto.ToData());
 }
Пример #3
0
 private static byte[] GetExtensionsData(DTObject extensions)
 {
     return(extensions.ToData());
 }