//--------------------------------------------------------------------- private void CacheRules() { ReadOnlyCollection <MonitoringRule> rules; rules = m_managementGroup.GetMonitoringRules(new MonitoringRuleCriteria("HasNonCategoryOverride=1")); m_rulesCache = new Dictionary <Guid, MonitoringRule>(rules.Count); m_typeToRuleMap = new Dictionary <Guid, List <MonitoringRule> >(); foreach (MonitoringRule rule in rules) { m_rulesCache.Add(rule.Id, rule); if (m_typeToRuleMap.ContainsKey(rule.Target.Id)) { m_typeToRuleMap[rule.Target.Id].Add(rule); } else { m_typeToRuleMap.Add(rule.Target.Id, new List <MonitoringRule>()); m_typeToRuleMap[rule.Target.Id].Add(rule); } } }