Пользовательское правило FxCop для проверки пространства имен

Я пытаюсь написать собственное правило в FxCop, чтобы проверить, начинается ли мое пространство имен с определенного слова. Я пробовал что-то вроде ниже:

    public override ProblemCollection Check(string namespaceName, TypeNodeCollection types)
    {
        if (namespaceName == null)
        {
            return this.Problems;
        }

        if (!namespaceName.StartsWith("FujiXerox.ApeosWare.", StringComparison.Ordinal))
        {
            this.Problems.Add(new Problem(this.GetNamedResolution("NamespaceResolution", namespaceName)));
        }

        return this.Problems;
    }

Но это не работает. Может кто-нибудь подсказать, пожалуйста, как правильно написать это пользовательское правило.

1 ответ

Я не знаю с FxCop, но с NDepend (инструмент.NET, интегрированный в VS, который давайте напишем пользовательские правила кода как запросы C# LINQ), вам просто нужно написать:

// <Name>Namespace should start with XYZ</Name>
warnif count > 0 
from n in Application.Namespaces
where !n.Name.StartsWith("XYZ")
select n

Правило может быть:

N Зависимое правило пользовательского кода. Пространство имен должно начинаться с

Отказ от ответственности: я работаю в NDepend

Другие вопросы по тегам