fxcop自定义规则 - 检查源代码以查找新关键字

时间:2009-11-17 17:08:11

标签: c# fxcop fxcop-customrules

我想避免使用new来实现某些类,并强制使用工厂类。

但我不明白该怎么做。

有人可以给我一些样品吗?

提前感谢您的帮助, 最好的问候

2 个答案:

答案 0 :(得分:1)

这是应该让你开始的东西。您需要添加自己的逻辑,以确定是否允许通过newing实例化任何给定类型的实例。

public override ProblemCollection Check(Member member)
{
    if (member is Method)
    {
        this.Visit(member);
    }

    return this.Problems;
}

public override void VisitConstruct(Construct construct)
{
    base.VisitConstruct(construct);

    if (!this.AllowTypeToBeNewed(construct.Type))
    {
        this.Problems.Add(new Problem(this.GetResolution(), construct));
    }
}

private bool AllowTypeToBeNewed(TypeNode type)
{
    throw new NotImplementedException();
}

答案 1 :(得分:1)