using System.Collections.Generic; using System.Linq; using Microsoft.CodeAnalysis.CSharp.Syntax; namespace wvdet.CodeChecker { public class CheckNamespace : ICheckable { private static List Forbiddens = new List() { //针对于禁用的命名空间放在此处 // "System.Linq", }; public List Check(string filepath, CompilationUnitSyntax root) { var results = new List(); var usings = root.DescendantNodes().OfType(); foreach (var us in usings) { var ns = us.Name.ToString(); if (Forbiddens.Contains(ns)) { results.Add(new Detail { level = Level.Error, line = us.GetLocation().GetLineSpan().StartLinePosition.Line + 1, guideline = $"禁用此命名空间:{ns}", }); } } return results; } } }