public string UriToFormatName(Uri uri)
            {
                if (null == uri)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("uri"));
                }
                if (uri.Scheme != this.Scheme)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.MsmqInvalidScheme), "uri"));
                }
                if (String.IsNullOrEmpty(uri.Host))
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.MsmqWrongUri));
                }

                StringBuilder builder = new StringBuilder();

                builder.Append("DIRECT=");
                builder.Append(this.DirectScheme);
                builder.Append(uri.Host);
                if (-1 != uri.Port)
                {
                    builder.Append(":");
                    builder.Append(uri.Port.ToString(CultureInfo.InvariantCulture));
                }

                string relativePath = Uri.UnescapeDataString(uri.PathAndQuery);

                builder.Append(msmqPart);
                MsmqUri.AppendQueueName(builder, relativePath, "/");

                return(builder.ToString());
            }
示例#2
0
            public virtual string UriToFormatName(Uri uri)
            {
                if (null == uri)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("uri"));
                }
                if (uri.Scheme != this.Scheme)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(System.ServiceModel.SR.GetString("MsmqInvalidScheme"), "uri"));
                }
                if (string.IsNullOrEmpty(uri.Host))
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(System.ServiceModel.SR.GetString("MsmqWrongUri"));
                }
                if (-1 != uri.Port)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(System.ServiceModel.SR.GetString("MsmqUnexpectedPort"));
                }
                uri = this.PostVerify(uri);
                StringBuilder builder = new StringBuilder();

                if (string.Compare(uri.Host, "localhost", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    builder.Append(".");
                }
                else
                {
                    builder.Append(uri.Host);
                }
                builder.Append(@"\");
                MsmqUri.AppendQueueName(builder, Uri.UnescapeDataString(uri.PathAndQuery), @"\");
                return(builder.ToString());
            }
            public string UriToFormatName(Uri uri)
            {
                if (null == uri)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("uri"));
                }
                if (uri.Scheme != this.Scheme)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.MsmqInvalidScheme), "uri"));
                }
                if (String.IsNullOrEmpty(uri.Host))
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.MsmqWrongUri));
                }
                if (-1 != uri.Port)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.MsmqUnexpectedPort));
                }

                StringBuilder builder = new StringBuilder();

                builder.Append("DIRECT=");
                if (0 == String.Compare(uri.Host, "localhost", StringComparison.OrdinalIgnoreCase))
                {
                    builder.Append("OS:.");
                }
                else
                {
                    IPAddress address = null;
                    if (IPAddress.TryParse(uri.Host, out address))
                    {
                        builder.Append("TCP:");
                    }
                    else
                    {
                        builder.Append("OS:");
                    }

                    builder.Append(uri.Host);
                }
                builder.Append("\\");
                MsmqUri.AppendQueueName(builder, Uri.UnescapeDataString(uri.PathAndQuery), "\\");

                return(builder.ToString());
            }