Анализатор кода, который предупреждает dev об использовании асинхронных методов - PullRequest
0 голосов
/ 11 января 2019

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

Таким образом, вызов ToList () вместо его асинхронного эквивалента ToListAsync () должен быть предупреждением.

public static TSource FirstOrDefault<TSource>(this IQueryable<TSource> source,
      Expression<Func<TSource, bool>> predicate)

 public static Task<TSource> FirstOrDefaultAsync<TSource>(
      [NotNull] this IQueryable<TSource> source,
      [NotNull] Expression<Func<TSource, bool>> predicate,
      CancellationToken cancellationToken = default (CancellationToken))

Так что в случае firstOrDefault, если существует расширение Async, следует предупредить dev, чтобы оно использовалось.

PS1. Спасибо вам, ребята, за все ваши минусы, не понимая моего вопроса и даже не спрашивая.

PS2. Вариант 1. https://github.com/Microsoft/vs-threading/blob/master/doc/analyzers/VSTHRD103.md

1 Ответ

0 голосов
/ 11 января 2019

Хотя я и не являюсь анализатором Roslyn, я использую плагин Async Converter для ReSharper (платное расширение Visual Studio), который, кажется, соответствует требованиям вашего анализатора. Он будет рефакторировать синхронные методы к их асинхронным аналогам по соглашению, выбирая перегрузку метода с CancellationToken, если таковой существует.

Ссылка на галерею: https://resharper -plugins.jetbrains.com / packages / AsyncConverter.AsyncConverter /

...