public MsmqSettings(ReadOnlySettings settings) { ExecuteInstaller = true; UseDeadLetterQueue = true; UseConnectionCache = true; UseTransactionalQueues = true; UseJournalQueue = false; UseDeadLetterQueueForMessagesWithTimeToBeReceived = false; TimeToReachQueue = Message.InfiniteTimeout; ScopeOptions = new MsmqScopeOptions(); LabelGenerator = (headers => string.Empty); if (settings == null) { return; } if (settings.TryGet <bool>("ExecuteInstaller", out var executeInstaller)) { ExecuteInstaller = executeInstaller; } if (settings.TryGet <bool>("UseDeadLetterQueue", out var useDeadLetterQueue)) { UseDeadLetterQueue = useDeadLetterQueue; } if (settings.TryGet <bool>("UseConnectionCache", out var useConnectionCache)) { UseConnectionCache = useConnectionCache; } if (settings.TryGet <bool>("UseTransactionalQueues", out var useTransactionalQueues)) { UseTransactionalQueues = useTransactionalQueues; } if (settings.TryGet <TimeSpan>("TimeToReachQueue", out var timeToReachQueue)) { TimeToReachQueue = timeToReachQueue; } if (settings.TryGet <bool>("UseDeadLetterQueueForMessagesWithTimeToBeReceived", out var useDeadLetterQueueForMessagesWithTimeToBeReceived)) { UseDeadLetterQueueForMessagesWithTimeToBeReceived = useDeadLetterQueueForMessagesWithTimeToBeReceived; } if (settings.TryGet <MsmqScopeOptions>(out var options)) { ScopeOptions = options; } if (settings.TryGet <Func <IReadOnlyDictionary <string, string>, string> >("msmqLabelGenerator", out var generator)) { LabelGenerator = generator; } }
public MsmqSettings(ReadOnlySettings settings) { ExecuteInstaller = true; UseDeadLetterQueue = true; UseConnectionCache = true; UseTransactionalQueues = true; UseJournalQueue = false; UseDeadLetterQueueForMessagesWithTimeToBeReceived = false; TimeToReachQueue = Message.InfiniteTimeout; ScopeOptions = new MsmqScopeOptions(); LabelGenerator = (headers => string.Empty); MessageEnumeratorTimeout = TimeSpan.FromSeconds(1); //with a 1s timeout a graceful shutdown will take on average 500ms which is acceptable if (settings == null) { return; } if (settings.TryGet <bool>("ExecuteInstaller", out var executeInstaller)) { ExecuteInstaller = executeInstaller; } if (settings.TryGet <bool>("UseDeadLetterQueue", out var useDeadLetterQueue)) { UseDeadLetterQueue = useDeadLetterQueue; } if (settings.TryGet <bool>("UseConnectionCache", out var useConnectionCache)) { UseConnectionCache = useConnectionCache; } if (settings.TryGet <bool>("UseTransactionalQueues", out var useTransactionalQueues)) { UseTransactionalQueues = useTransactionalQueues; } if (settings.TryGet <TimeSpan>("TimeToReachQueue", out var timeToReachQueue)) { TimeToReachQueue = timeToReachQueue; } if (settings.TryGet <TimeSpan>("NServiceBus.Transport.Msmq.MessageEnumeratorTimeout", out var messageEnumeratorTimeout)) { MessageEnumeratorTimeout = messageEnumeratorTimeout; } if (settings.TryGet <bool>("UseDeadLetterQueueForMessagesWithTimeToBeReceived", out var useDeadLetterQueueForMessagesWithTimeToBeReceived)) { UseDeadLetterQueueForMessagesWithTimeToBeReceived = useDeadLetterQueueForMessagesWithTimeToBeReceived; } if (settings.TryGet <MsmqScopeOptions>(out var options)) { ScopeOptions = options; } if (settings.TryGet <Func <IReadOnlyDictionary <string, string>, string> >("msmqLabelGenerator", out var generator)) { LabelGenerator = generator; } }