public void AddOrReplaceRule(AnalyzeRule rule) { if (string.IsNullOrWhiteSpace(ProgramName)) { ProgramName = rule.ProgramName; } if (ProgramName != rule.ProgramName) { throw new ArgumentException($"This instance of {nameof(ProgramAnalyzer)} is analyzing {ProgramName}. Can not add ruleset for {rule.ProgramName}."); } Rules.AddOrUpdate(rule.RuleName, rule, (key, oldValue) => rule); }