ReplyDestination GetOrCreateReplyDestination(string replyToken, Uri targetUri) { ReplyDestination replyDestination; lock (this.replyDestinationsMutex) { var signatureTokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(replyToken); if (this.responderFactories.TryGetValue(targetUri, out replyDestination)) { replyDestination.TokenProvider.TokenProvider = signatureTokenProvider; } else { var tokenProvider = new DelegatingTokenProvider(signatureTokenProvider); var receiverFactory = MessagingFactory.Create(targetUri.GetLeftPart(UriPartial.Authority), new MessagingFactorySettings { TransportType = TransportType.Amqp, TokenProvider = tokenProvider }); replyDestination = new ReplyDestination { Factory = receiverFactory, TokenProvider = tokenProvider }; this.responderFactories.Add(targetUri, replyDestination); } } return(replyDestination); }
ReplyDestination GetOrCreateReplyDestination(string replyToken, Uri targetUri) { ReplyDestination replyDestination; lock (this.replyDestinationsMutex) { var signatureTokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(replyToken); if (this.responderFactories.TryGetValue(targetUri, out replyDestination)) { replyDestination.TokenProvider.TokenProvider = signatureTokenProvider; } else { var tokenProvider = new DelegatingTokenProvider(signatureTokenProvider); var receiverFactory = MessagingFactory.Create(targetUri.GetLeftPart(UriPartial.Authority), new MessagingFactorySettings { TransportType = TransportType.Amqp, TokenProvider = tokenProvider }); replyDestination = new ReplyDestination { Factory = receiverFactory, TokenProvider = tokenProvider }; this.responderFactories.Add(targetUri, replyDestination); } } return replyDestination; }