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 に答える