Пользовательские правила fxcop - проверка исходного кода на наличие нового ключевого слова

Я хотел бы избежать создания экземпляров определенного класса с новым и заставить использовать фабричный класс.

Но я не понимаю, как это сделать.

Может кто-нибудь показать мне маленький образец?

Заранее спасибо за любую помощь, С наилучшими пожеланиями

2 ответа

Решение

Вот кое-что, что должно начать вас. Вам нужно будет добавить свою собственную логику для определения того, следует ли экземплярам любого данного типа создавать экземпляры с помощью 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();
}

Этот парень хорошо объяснил

http://www.guysmithferrier.com/downloads/FxCop.pdf

Другие вопросы по тегам