/// <summary>
        /// Создает временную конечную точку для получения сообщений.
        /// </summary>
        /// <param name="endpoint">Конечная точка шины сообщений для который создается подписка.</param>
        /// <param name="label">Метка сообщений, на которые ожидается получение ответа.</param>
        /// <returns>
        /// Конечная точка подписки для получения сообщений.
        /// </returns>
        public ISubscriptionEndpoint BuildTempReplyEndpoint(IEndpoint endpoint, MessageLabel label)
        {
            var queue = Queue.Named(string.Format("{0}.replies-{1}-{2}", endpoint.Address, label.IsAny ? "any" : label.Name, NameGenerator.GetRandomName(8)))
                        .AutoDelete.Exclusive.Instance;

            this.rabbitChannel.Declare(queue);

            return(new SubscriptionEndpoint(queue, new StaticRouteResolver(string.Empty, queue.Name)));
        }
Exemple #2
0
        /// <summary>
        /// Создает временную конечную точку для получения сообщений.
        /// </summary>
        /// <param name="endpoint">Конечная точка шины сообщений для который создается подписка.</param>
        /// <param name="label">Метка сообщений, на которые ожидается получение ответа.</param>
        /// <returns>
        /// Конечная точка подписки для получения сообщений.
        /// </returns>
        public ISubscriptionEndpoint BuildTempReplyEndpoint(IEndpoint endpoint, MessageLabel label)
        {
            using (var channel = (RabbitChannel)this.channelProvider.OpenChannel(CancellationToken.None))
            {
                var queue =
                    Queue.Named(
                        $"{endpoint.Address}.replies-{(label.IsAny ? "any" : label.Name)}-{NameGenerator.GetRandomName(8)}")
                    .AutoDelete.Exclusive.Instance;

                channel.Declare(queue);

                return(new SubscriptionEndpoint(queue, new StaticRouteResolver(string.Empty, queue.Name)));
            }
        }