コード例 #1
0
            private void ParseBannedMethodElement(XElement element, AnalyzerEntryOptionsForParsing options)
            {
                AnalyzerEntryOptionsForParsing updatedOptions = options.UpdateFromElement(element);

                switch (element.Name.LocalName)
                {
                case "EntryGroup":
                    foreach (XElement child in element.Elements())
                    {
                        ParseBannedMethodElement(child, updatedOptions);
                    }

                    break;

                case "Entry":
                    var entry = new AnalyzerEntry(element.Value, updatedOptions);
                    _bannedMethods.Add(entry);
                    break;

                default:
                    var diagnostic = Diagnostic.Create(FileParseRule, Location.None, string.Format(CultureInfo.InvariantCulture, "Unsupported element in BannedMethods.xml: {0}", element.Name.LocalName));
                    _additionalFileService.ParsingDiagnostics.Add(diagnostic);
                    break;
                }
            }
コード例 #2
0
 public AnalyzerEntry(string entryName, AnalyzerEntryOptionsForParsing options)
 {
     EntryName       = entryName.Trim();
     EntryRegex      = GetEscapedRegex(EntryName);
     Justification   = options.Justification;
     Alternative     = options.Alternative;
     AssemblyRegexes = !string.IsNullOrWhiteSpace(options.Assemblies)
         ? options.Assemblies.Trim().Split(',').Select(x => GetEscapedRegex(x))
         : new List <Regex>();
 }
コード例 #3
0
                public AnalyzerEntryOptionsForParsing UpdateFromElement(XElement element)
                {
                    AnalyzerEntryOptionsForParsing toReturn = this;

                    foreach (XAttribute attribute in element.Attributes())
                    {
                        switch (attribute.Name.LocalName)
                        {
                        case "Justification":
                            toReturn = toReturn.WithJustification(attribute.Value);
                            break;

                        case "Alternative":
                            toReturn = toReturn.WithAlternative(attribute.Value);
                            break;

                        case "Assemblies":
                            toReturn = toReturn.WithAssemblies(attribute.Value);
                            break;
                        }
                    }

                    return(toReturn);
                }