public PublishInfo() { IsAutoDelete = true; ExchangeType = RabbitMQ.Client.ExchangeType.Direct; DefaultRoutingKey = string.Empty; ReplyInfo = new ConsumeInfo(); }
static ConsumeInfo GetConsumeInfo(Type type, IConsumeConfigurationConvention convention) { var consumeInfo = new ConsumeInfo { ExchangeName = convention.GetExchangeName(type), ExchangeType = convention.GetExchangeType(type), QueueName = convention.GetQueueName(type), IsAutoAcknowledge = convention.IsAutoAcknowledge(type), DefaultRoutingKey = convention.GetDefaultRouteKey(type), IsQueueExclusive = convention.IsExclusive(type), IsExchangeAutoDelete = convention.IsAutoDeleteExchange(type), IsExchangeDurable = convention.IsDurableExchange(type), IsQueueAutoDelete = convention.IsAutoDeleteQueue(type), IsQueueDurable = convention.IsDurableQueue(type), QualityOfService = convention.GetQualityOfService(type), DeadLetterConfiguration = convention.GetDeadLetterConfiguration(type) }; ISerializationStrategy serializationStrategy = convention.GetSerializationStrategy(type); if (serializationStrategy != null) { consumeInfo.SerializationStrategy = serializationStrategy; } Action <IErrorContext> errorCallback = convention.GetErrorCallback(type); if (errorCallback != null) { consumeInfo.ErrorCallback = errorCallback; } return(consumeInfo); }
public void Subscribe(IConfigurationModel configurationModel, IAutoSubscriptionModel autoSubscriptionModel) { foreach (Assembly assembly in autoSubscriptionModel.Assemblies) { foreach (Type type in assembly.GetTypes()) { foreach (ISubscriptionConvention convention in autoSubscriptionModel.Conventions) { if (convention.ShouldRegister(type)) { var consumeInfo = new ConsumeInfo { ExchangeName = convention.GetExchangeName(type), ExchangeType = convention.GetExchangeType(type), QueueName = convention.GetQueueName(type), IsAutoAcknowledge = convention.IsAutoAcknowledge(type), DefaultRoutingKey = convention.GetDefaultRouteKey(type), Exclusive = convention.IsExclusive(type), IsExchangeAutoDelete = convention.IsAutoDeleteExchange(type), IsExchangeDurable = convention.IsDurableExchange(type), IsQueueAutoDelete = convention.IsAutoDeleteQueue(type), IsQueueDurable = convention.IsDurableQueue(type), }; ISerializationStrategy serializationStrategy = convention.GetSerializationStrategy(type); if (serializationStrategy != null) { consumeInfo.SerializationStrategy = serializationStrategy; } Action<IErrorContext> errorCallback = convention.GetErrorCallback(type); if (errorCallback != null) { consumeInfo.ErrorCallback = errorCallback; } configurationModel.ConsumeRouteConfiguration.AddPolicy<MappingRouteInfoLookupStrategy<IConsumeInfo>>(type, consumeInfo); foreach (Assembly handlerProspectAssembly in autoSubscriptionModel.Assemblies) { foreach ( Type handler in handlerProspectAssembly.GetTypes().Where(t => typeof (IMessageHandler).IsAssignableFrom(t))) { foreach (IHandlerConvention handlerConvention in autoSubscriptionModel.HandlerConventions) { if (handlerConvention.ShouldHandle(type, handler)) { configurationModel.AutoSubscriptions.Add(new AutoSubscription(type, handler)); break; } } } } } } } } }
static void ConfigureConsume(IConfigurationModel configurationModel, IAutoConfigurationModel autoConfigurationModel, Type type) { foreach (IConsumeConfigurationConvention convention in autoConfigurationModel.ConsumeConfigurationConventions) { if (convention.ShouldRegister(type)) { ConsumeInfo consumeInfo = GetConsumeInfo(type, convention); configurationModel.ConsumeRouteConfiguration .AddPolicy <MappingRouteInfoLookupStrategy <IConsumeInfo> >(type, consumeInfo); } } }
public ConsumeConfigurationContext(string defaultName) { ConsumeInfo = new ConsumeInfo(); ConsumeInfo.ExchangeName = defaultName; ConsumeInfo.QueueName = defaultName; }
static ConsumeInfo GetConsumeInfo(Type type, IConsumeConfigurationConvention convention) { var consumeInfo = new ConsumeInfo { ExchangeName = convention.GetExchangeName(type), ExchangeType = convention.GetExchangeType(type), QueueName = convention.GetQueueName(type), IsAutoAcknowledge = convention.IsAutoAcknowledge(type), DefaultRoutingKey = convention.GetDefaultRouteKey(type), Exclusive = convention.IsExclusive(type), IsExchangeAutoDelete = convention.IsAutoDeleteExchange(type), IsExchangeDurable = convention.IsDurableExchange(type), IsQueueAutoDelete = convention.IsAutoDeleteQueue(type), IsQueueDurable = convention.IsDurableQueue(type), QualityOfService = convention.GetQualityOfService(type) }; ISerializationStrategy serializationStrategy = convention.GetSerializationStrategy(type); if (serializationStrategy != null) { consumeInfo.SerializationStrategy = serializationStrategy; } Action<IErrorContext> errorCallback = convention.GetErrorCallback(type); if (errorCallback != null) { consumeInfo.ErrorCallback = errorCallback; } return consumeInfo; }