/// <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); } }
private static byte[] Map(DTObject dto) { return(dto == null || dto.IsEmpty() ? Array.Empty <byte>() : dto.ToData()); }
private static byte[] GetExtensionsData(DTObject extensions) { return(extensions.ToData()); }