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);
 }