2016-01-27 3 views
0

Если я хочу объявить метод в моим кодом как устаревший/устаревший, я могу добавить к нему атрибут [Obsolete] и заставить компилятор выдавать предупреждение (или ошибку) всякий раз, когда метод используется.Выполнение стороннего метода [Устаревший]

Возможно ли добиться аналогичного эффекта для сторонних методов (например, System.Console.WriteLine)? Очевидно, я не могу добавить атрибут, так как я не контролирую код. Но может быть, есть какой-то другой трюк, доступный в .NET или Visual Studio?

Я предпочитаю решение «из коробки», которое не требует чего-то вроде написания собственного скрипта пост-сборки, который вручную анализирует код.

+1

Ничего из этого не существует. resharper имеет аннотации кода. Думаю, вы могли бы что-то сделать с roslyn. –

+2

Звучит скорее как проверка кода с помощью специального правила. Вам не нужно решать, что-то еще устарело, но вы можете решить, хотите ли вы его назвать. –

+0

С Visual Studio 2015 вы можете легко и быстро написать анализатор кода и пометить определенные методы как «не рекомендуемые» и вызывать предупреждение или ошибку во время компиляции. См. Https://msdn.microsoft.com/en-us/magazine/dn879356.aspx – willaien

ответ

5

С Visual Studio 2015 вы можете создавать анализаторы кода в реальном времени, которые могут обеспечить пользовательскую проверку времени разработки практически для любого. Имеется хороший учебник here. Обычно они живут как часть решения, поэтому они будут «следовать за ним» независимо от того, где он компилируется.

Анализаторы кода могут поднять ошибки или предупреждения об ошибках компиляции и даже представить пользовательский интерфейс для автоматического исправления проблемы. Они могут быть ОЧЕНЬ мощными, но написание одного из них может быть довольно сложным в зависимости от того, что вам нужно.

A similar feature существует для предыдущих версий Visual Studio (2010+). Он не настолько интегрирован, но может работать для вас.

+0

Nice. К сожалению, в настоящее время я придерживаюсь VS 2013 года, но этот ответ может помочь другим. –

+0

Я считаю, что вы можете создать нечто подобное для более ранней версии VS, но они запускаются только во время компиляции. Не дают вам такой же живой обратной связи. Попытка найти для вас больше информации. –

+0

Проверьте это: http://blogs.msdn.com/b/codeanalysis/archive/2010/03/26/how-to-write-custom-static-code-analysis-rules-and-integrate-them-into -Visual-студия-2010.aspx –

2

Вы можете сделать это, создав пользовательские правила проверки кода в ReSharper.

Перейти к ReSharper/Options/Code Inspection/Custom Pattern/Add Pattern, написать шаблон, соответствующий устаревшему вызову метода, и выбрать серьезность проверки, такую ​​как «предложение» или «предупреждение». Вы также можете написать шаблон замены, который может быть применен с помощью быстрых исправлений.

Пример:

Example of one custom pattern

В этом примере, был неправильно System.Console для регистрации и должны быть заменены соответствующими вызовами Log4Net.

Смежные вопросы