/// <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))); }
/// <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))); } }