代码分析器警告开发人员使用异步方法

时间:2019-01-11 02:28:04

标签: c# visual-studio visual-studio-code code-analysis roslyn-code-analysis

我想通过使用分析器来改进我的旧代码,但我找不到的是“强制”异步使用的规则。

因此,调用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扩展名,则应警告开发人员使用它。

PS1。谢谢你们在不理解我的问题甚至不问的情况下所做的所有事情。

PS2。选项1. https://github.com/Microsoft/vs-threading/blob/master/doc/analyzers/VSTHRD103.md

1 个答案:

答案 0 :(得分:1)

虽然不是Roslyn Analyzer,但我使用了ReSharper的Async Converter插件(付费的Visual Studio扩展),该插件似乎符合您的Analyzer要求。它将按照惯例将同步方法重构为异步方法,并选择一个带有CancellationToken的方法重载(如果存在)。

图库链接:https://resharper-plugins.jetbrains.com/packages/AsyncConverter.AsyncConverter/