public PublishConfiguration GetConfiguration(Type messageType, Action <IPublishConfigurationBuilder> configuration) { configuration = configuration ?? (builder => { }); // 根据注解属性获取Exchange和Routing Key值 configuration = (builder => { builder.WithExchange(ExchangeAction(messageType)); var routingAttr = GetAttribute <RoutingAttribute>(messageType); if (routingAttr?.RoutingKey != null) { builder.WithRoutingKey(routingAttr.RoutingKey); } }) + configuration; var exchangeConfig = new ExchangeConfiguration(_clientConfig.Exchange) { ExchangeName = _conventions.ExchangeNamingConvention(messageType) }; var routingKey = _conventions.QueueNamingConvention(messageType); var cfgBuilder = new PublishConfigurationBuilder(exchangeConfig, routingKey); configuration?.Invoke(cfgBuilder); return(cfgBuilder.Configuration); }
public PublishConfiguration GetConfiguration(Type messageType, Action <IPublishConfigurationBuilder> configuration) { var exchangeConfig = new ExchangeConfiguration(_clientConfig.Exchange) { ExchangeName = _conventions.ExchangeNamingConvention(messageType) }; var routingKey = _conventions.QueueNamingConvention(messageType); var builder = new PublishConfigurationBuilder(exchangeConfig, routingKey); configuration?.Invoke(builder); return(builder.Configuration); }