コード例 #1
0
ファイル: PublishInfo.cs プロジェクト: bryanhunter/rabbitBus
		public PublishInfo()
		{
			IsAutoDelete = true;
			ExchangeType = RabbitMQ.Client.ExchangeType.Direct;
			DefaultRoutingKey = string.Empty;
			ReplyInfo = new ConsumeInfo();
		}
コード例 #2
0
ファイル: PublishInfo.cs プロジェクト: niaoked/rabbitBus
 public PublishInfo()
 {
     IsAutoDelete      = true;
     ExchangeType      = RabbitMQ.Client.ExchangeType.Direct;
     DefaultRoutingKey = string.Empty;
     ReplyInfo         = new ConsumeInfo();
 }
コード例 #3
0
ファイル: AutoConfigurator.cs プロジェクト: niaoked/rabbitBus
        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);
        }
コード例 #4
0
		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;
										}
									}
								}
							}
						}
					}
				}
			}
		}
コード例 #5
0
ファイル: AutoConfigurator.cs プロジェクト: niaoked/rabbitBus
        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);
                }
            }
        }
コード例 #6
0
 public ConsumeConfigurationContext(string defaultName)
 {
     ConsumeInfo = new ConsumeInfo();
     ConsumeInfo.ExchangeName = defaultName;
     ConsumeInfo.QueueName    = defaultName;
 }
コード例 #7
0
		public ConsumeConfigurationContext(string defaultName)
		{
			ConsumeInfo = new ConsumeInfo();
			ConsumeInfo.ExchangeName = defaultName;
			ConsumeInfo.QueueName = defaultName;
		}
コード例 #8
0
ファイル: AutoConfigurator.cs プロジェクト: avieru/rabbitBus
		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;
		}