C# 用于检查命名空间的FxCop自定义规则

C# 用于检查命名空间的FxCop自定义规则,c#,fxcop,fxcop-customrules,C#,Fxcop,Fxcop Customrules,我正在尝试在FxCop中编写一个自定义规则,以验证我的命名空间是否以特定单词开头。我尝试过以下方法: public override ProblemCollection Check(string namespaceName, TypeNodeCollection types) { if (namespaceName == null) { return this.Problems; } if

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

但它不起作用。任何人都可以建议如何正确编写此自定义规则。

我不知道如何使用FxCop,但使用集成在VS中的.NET工具NDepend,让我们编写自定义代码规则作为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工作

你说它不工作是什么意思?你的规则是抛出异常,还是有意外行为,或者???@NicoleCalinoiu:它没有给我预期的结果。你的预期结果和实际结果有什么不同?