NServiceBus.MsmqAddress.Parse C# (CSharp) Method

Parse() public static method

public static Parse ( string address ) : MsmqAddress
address string
return MsmqAddress
        public static MsmqAddress Parse(string address)
        {
            Guard.AgainstNullAndEmpty(nameof(address), address);

            var split = address.Split('@');

            if (split.Length > 2)
            {
                var message = $"Address contains multiple @ characters. Address supplied: '{address}'";
                throw new ArgumentException(message, nameof(address));
            }

            var queue = split[0];
            if (string.IsNullOrWhiteSpace(queue))
            {
                var message = $"Empty queue part of address. Address supplied: '{address}'";
                throw new ArgumentException(message, nameof(address));
            }

            string machineName;
            if (split.Length == 2)
            {
                machineName = split[1];
                if (string.IsNullOrWhiteSpace(machineName))
                {
                    var message = $"Empty machine part of address. Address supplied: '{address}'";
                    throw new ArgumentException(message, nameof(address));
                }
                machineName = ApplyLocalMachineConventions(machineName);
            }
            else
            {
                machineName = RuntimeEnvironment.MachineName;
            }

            return new MsmqAddress(queue, machineName);
        }

Usage Example

Exemplo n.º 1
0
        public static void CheckQueue(string address)
        {
            var msmqAddress = MsmqAddress.Parse(address);
            var queuePath   = msmqAddress.PathWithoutPrefix;

            Logger.Debug($"Checking if queue exists: {queuePath}.");
            if (msmqAddress.IsRemote)
            {
                Logger.Info($"Since {address} is remote, the queue could not be verified. Make sure the queue exists and that the address and permissions are correct. Messages could end up in the dead letter queue if configured incorrectly.");
                return;
            }

            var path = msmqAddress.PathWithoutPrefix;

            try
            {
                if (MessageQueue.Exists(path))
                {
                    using (var messageQueue = new MessageQueue(path))
                    {
                        Logger.DebugFormat("Verified that the queue: [{0}] exists", queuePath);
                        WarnIfPublicAccess(messageQueue, LocalEveryoneGroupName);
                        WarnIfPublicAccess(messageQueue, LocalAnonymousLogonName);
                    }
                }
                else
                {
                    Logger.WarnFormat("Queue [{0}] does not exist", queuePath);
                }
            }
            catch (MessageQueueException ex)
            {
                Logger.Warn($"Unable to verify queue at address '{queuePath}'. Make sure the queue exists, and that the address is correct. Processing will still continue.", ex);
            }
        }
All Usage Examples Of NServiceBus.MsmqAddress::Parse