Пользовательское правило 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
Правило может быть:
- редактировал / компилировал / исполнял вживую в VS,
- можно регулярно сохранять и проверять в VS
- и во время процесса сборки может быть создан отчет, показывающий возможные нарушения правил
Отказ от ответственности: я работаю в NDepend