public Uri[] GetBaseAddresses(string virtualPath)
        {
            foreach (MsmqBindingMonitor monitor in this.bindingMonitors)
            {
                monitor.WaitForFirstRoundComplete();
            }
            string     str  = VirtualPathUtility.ToAbsolute(virtualPath, HostingEnvironment.ApplicationVirtualPath);
            List <Uri> list = new List <Uri>(this.hosts.Length);
            string     processedVirtualPath = str.Substring(1);

            foreach (string str3 in this.hosts)
            {
                bool isPrivate = this.filter.IsPrivateMatch(processedVirtualPath);
                Uri  item      = this.addressing.CreateUri(str3, processedVirtualPath, isPrivate);
                list.Add(item);
                MsmqDiagnostics.FoundBaseAddress(item, str);
            }
            return(list.ToArray());
        }
        public Uri[] GetBaseAddresses(string virtualPath)
        {
            // Make sure this is not called until initialization is done:
            foreach (MsmqBindingMonitor monitor in this.bindingMonitors)
            {
                monitor.WaitForFirstRoundComplete();
            }

            string absoluteVirtualPath = VirtualPathUtility.ToAbsolute(virtualPath, HostingEnvironment.ApplicationVirtualPath);

            List <Uri> baseAddresses = new List <Uri>(this.hosts.Length);
            string     queueName     = absoluteVirtualPath.Substring(1);

            foreach (string host in this.hosts)
            {
                bool isPrivate = this.filter.IsPrivateMatch(queueName);

                Uri uri = this.addressing.CreateUri(host, queueName, isPrivate);
                baseAddresses.Add(uri);
                MsmqDiagnostics.FoundBaseAddress(uri, absoluteVirtualPath);
            }
            return(baseAddresses.ToArray());
        }