public AttributeConfigEvaluator(RawRabbitConfiguration config, INamingConventions conventions) { _fallback = new ConfigurationEvaluator(config, conventions); }
/// <summary> /// Creates a default <see cref="IBusClient{TMessageContext}"/> according to config. /// </summary> /// <remarks> /// This component replaces RawRabbit.vNext.BusClientFactory in order to avoid heavy dependency "pollution", but at /// the cost of inflexible, hard-wired setup. /// </remarks> /// <typeparam name="TMessageContext">The type of the context.</typeparam> /// <param name="config">The raw rabbit configuration.</param> /// <returns>The bus client.</returns> public static IBusClient <TMessageContext> CreateDefault <TMessageContext>(RawRabbitConfiguration config) where TMessageContext : MessageContext { var namingConventions = new NamingConventions(); var configurationEvaluator = new ConfigurationEvaluator(config, namingConventions); var connectionFactory = CreateConnectionFactory(config); var channelConfig = new ChannelFactoryConfiguration(); var channelFactory = new ChannelFactory(connectionFactory, config, channelConfig); var consumerFactory = new EventingBasicConsumerFactory(); var topologyProvider = new TopologyProvider(channelFactory); var jsonSerializer = new JsonSerializer(); var serializer = new MessageSerializer(jsonSerializer); IMessageContextProvider <TMessageContext> contextProvider = new MessageContextProvider <TMessageContext>(jsonSerializer); var contextEnhancer = new ContextEnhancer(channelFactory, namingConventions); var propertiesProvider = new BasicPropertiesProvider(config); var errorHandling = new DefaultStrategy( serializer, namingConventions, propertiesProvider, topologyProvider, channelFactory); ISubscriber <TMessageContext> subscriber = new Subscriber <TMessageContext>( channelFactory, consumerFactory, topologyProvider, serializer, contextProvider, contextEnhancer, errorHandling, config); var acknowledger = new NoAckAcknowledger(); var publisher = new Publisher <TMessageContext>( channelFactory, topologyProvider, serializer, contextProvider, acknowledger, propertiesProvider, config); var responder = new Responder <TMessageContext>( channelFactory, topologyProvider, consumerFactory, serializer, contextProvider, contextEnhancer, propertiesProvider, errorHandling, config); var requester = new Requester <TMessageContext>( channelFactory, consumerFactory, serializer, contextProvider, errorHandling, propertiesProvider, topologyProvider, config); var client = new BaseBusClient <TMessageContext>( configurationEvaluator, subscriber, publisher, responder, requester); return(client); }