.net core 3.1 中的 ConfigureAwait 警告

ConfigureAwait warning in .net core 3.1

我正在 ASP NET Core 3.1 预览版中开发服务器,现在我看到调用 await 时所有 async 方法都收到 CA2007 警告(就像某些任务 运行 异步时一样)。

异步等待在 .NET Core 3.1 中的工作方式是否有任何我不知道的重大变化,因此我应该使用 ConfigureAwait

P.S 如果没有变化,有什么方法可以停止突出显示我没有使用 configureawait 的所有 await 绿色?

您在问题中指定 ASP.NET Core 3.1,但未指定您来自哪个版本。但是,在 ASP.NET Core 中(从一开始?)您不需要从 ASP.NET Core 调用 ConfigureAwait(false)。参见:ASP.NET Core SynchronizationContext Stephen Cleary 着。

为了停止警告,我将其放入 GlobalSuppressions.cs:

using System.Diagnostics.CodeAnalysis;

[assembly: SuppressMessage("Design", "RCS1090:Call 'ConfigureAwait(false)'.", 
  Justification = "ASP.NET Core doesn't have a SynchronizationContext. https://blog.stephencleary.com/2017/03/aspnetcore-synchronization-context.html", 
  Scope = "NamespaceAndDescendants", 
  Target = "YourProjectNamespace.Controllers")]

注意 Target = "YourProjectNamespace.Controllers"。我试着具体说明我在哪里抑制警告。由于我无法控制将从何处调用我的库代码,因此我想确保我的库仍会调用 ConfigureAwait(false)。但是在 ASP.NET 核心控制器中我不需要,因此抑制。