Contour.Transport.RabbitMQ.Internal.RabbitBus.OpenChannel C# (CSharp) Method

OpenChannel() public method

The open channel.
public OpenChannel ( ) : RabbitChannel
return RabbitChannel
        public virtual RabbitChannel OpenChannel()
        {
            if (this.Connection == null || !this.Connection.IsOpen)
            {
                throw new InvalidOperationException("RabbitMQ Connection is not open.");
            }

            try
            {
                var channel = new RabbitChannel(this, this.Connection.CreateModel());
                channel.Failed += (ch, args) => this.HandleBusFailure(args.GetException());
                return channel;
            }
            catch (Exception ex)
            {
                this.HandleBusFailure(ex);
                throw;
            }
        }

Usage Example

コード例 #1
0
ファイル: Producer.cs プロジェクト: mzabolotko/Contour
        /// <summary>
        /// Инициализирует новый экземпляр класса <see cref="Producer"/>.
        /// </summary>
        /// <param name="bus">
        /// Конечная точка, для которой создается отправитель.
        /// </param>
        /// <param name="label">
        /// Метка сообщения, которая будет использоваться при отправлении сообщений.
        /// </param>
        /// <param name="routeResolver">
        /// Определитель маршрутов, по которым можно отсылать и получать сообщения.
        /// </param>
        /// <param name="confirmationIsRequired">
        /// Если <c>true</c> - тогда отправитель будет ожидать подтверждения о том, что сообщение было сохранено в брокере.
        /// </param>
        public Producer(RabbitBus bus, MessageLabel label, IRouteResolver routeResolver, bool confirmationIsRequired)
        {
            this.Channel = bus.OpenChannel();
            this.Label = label;
            this.RouteResolver = routeResolver;
            this.ConfirmationIsRequired = confirmationIsRequired;

            if (this.ConfirmationIsRequired)
            {
                this.confirmationTracker = new DefaultPublishConfirmationTracker(this.Channel);
                this.Channel.EnablePublishConfirmation();
                this.Channel.OnConfirmation(this.confirmationTracker.HandleConfirmation);
            }

            this.Failed += _ => ((IBusAdvanced)bus).Panic();
        }
All Usage Examples Of Contour.Transport.RabbitMQ.Internal.RabbitBus::OpenChannel