2

我正在尝试在 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;
    }

但它不起作用。谁能建议如何正确编写此自定义规则。

4

1 回答 1

1

我不知道使用 FxCop,但使用 NDepend(集成在 VS 中的 .NET 工具,让我们将自定义代码规则编写为 C# LINQ 查询)你只需要编写:

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

规则可以是:

NDepend 自定义代码规则命名空间应以

免责声明:我在 NDepend 工作

于 2015-10-09T16:05:25.703 回答