Как заставить VS2019 жаловаться на методы, которые ведут себя асинхронно, но имеют имена, в которых нет суффикса "Asyn c"? - PullRequest
2 голосов
/ 05 марта 2020

Несколько недель спустя go, мой VS2019 делал множество предложений о различных методах в одном из наших API, которые вели себя асинхронно (возвращали задачу, содержали ожидаемые вызовы), но не были названы " ... Asyn c "

Я поместил его в список задач для проверки и исправления с низким приоритетом, но теперь я прихожу посмотреть на него VS, похоже, перестал делать предложения.

Этот вопрос был предложен в двух экземплярах; Я рассмотрел его, и он мог бы решить вопрос, но я все еще озадачен по нескольким причинам:

  • Я не помню, чтобы когда-либо следовал этой процедуре
  • Контроль исходного кода не Не указывайте, что кто-либо когда-либо помещал файл .editorconfig в репозиторий (а затем удалил его)
  • У меня сложилось впечатление, что делаются предложения относительно методов, которые возвращали Task, await ed-то в теле, но у него не было модификатора async, на который опирается связанная техника (но я мог бы помнить здесь неправильно, и, возможно, я смотрел на асинхронный интерфейс, а не на асинхронную реализацию интерфейса, оформленную в асинхронном режиме c) method)

Итак, я полагаю, что мой вопрос, кроме техники в связанном возможном дубликате, есть ли другой способ, которым VS может прийти к выводу о том, что методы с асинхронным поведением имеют неправильные имена? Некоторые расширения для анализа кода, которые я мог установить, возможно, даже не осознавая?

Ответы [ 2 ]

1 голос
/ 06 марта 2020

Вы также можете использовать инструмент NDepend, интегрированный в Visual Studio, CI и Azure DevOps, чтобы использовать это правило кода ( с NDepend, правило кода является текстовым C# LINQ запрос ):

// <Name>Async method not suffixed with Async</Name>
warnif count > 0
from m in Application.Methods
where m.IsAsync && !m.SimpleName.EndsWith("Async")
select m

Вот результат этого правила для базы кода NopCommerce:

NDepend code rule to detect async methods not suffixed with Async

Отказ от ответственности: я работаю в NDepend

0 голосов
/ 05 марта 2020

Вдобавок ко мне, есть несколько расширений, которые могут быть вовлечены в это:

  • Roslynator
  • Анализ кода Microsoft

Вы всегда можете проверить дату установки ваших расширений, открыв Расширения> Управление расширениями, щелкнув по ним и посмотрев вправо («Дата установки»):

Manage extensions

...