/// <include file='..\..\doc\MessageQueueEnumerator.uex' path='docs/doc[@for="MessageQueueEnumerator.MessageQueueEnumerator"]/*' /> /// <internalonly/> internal MessageQueueEnumerator(MessageQueueCriteria criteria) { this.criteria = criteria; this.checkSecurity = true; }
/// <include file='..\..\doc\MessageQueueEnumerator.uex' path='docs/doc[@for="MessageQueueEnumerator.MessageQueueEnumerator1"]/*' /> /// <internalonly/> internal MessageQueueEnumerator(MessageQueueCriteria criteria, bool checkSecurity) { this.criteria = criteria; this.checkSecurity = checkSecurity; }
internal void ResolveFormatNames() { if (this.resolvedFormatNames == null) { this.resolvedFormatNames = new Hashtable(GetComparer()); IEnumerator enumerator = this.PermissionEntries.GetEnumerator(); while (enumerator.MoveNext()) { MessageQueuePermissionEntry entry = (MessageQueuePermissionEntry)enumerator.Current; if (entry.Path != null) { if (entry.Path == Any) { this.resolvedFormatNames.Add(Any, entry.PermissionAccess); } else { try { MessageQueue queue = new MessageQueue(entry.Path); this.resolvedFormatNames.Add(queue.FormatName, entry.PermissionAccess); } catch { //if the format name cannot be resolved, it won't be added to the list //permissions won't be granted. } } } else { try { MessageQueueCriteria criteria = new MessageQueueCriteria(); if (entry.MachineName != null) { criteria.MachineName = entry.MachineName; } if (entry.Category != null) { criteria.Category = new Guid(entry.Category); } if (entry.Label != null) { criteria.Label = entry.Label; } IEnumerator messageQueues = MessageQueue.GetMessageQueueEnumerator(criteria, false); while (messageQueues.MoveNext()) { MessageQueue queue = (MessageQueue)messageQueues.Current; this.resolvedFormatNames.Add(queue.FormatName, entry.PermissionAccess); } } catch { //if the criteria cannot be resolved, nothing will be added to the list //permissions won't be granted. } } } } }