升级到 Roslyn Analyzers 6.0 版本后获取 CA2007
Getting CA2007 after upgrading to 6.0 version of the Roslyn Analyzers
我们有一个 .net core 3.1 项目,我们刚刚将 roslyn 分析器升级到 6.0 版。这样做之后,以下代码行开始收到“CA2007:考虑在等待的任务上调用 ConfigureAwait”。错误:
await using var memoryStream = new MemoryStream(fileByteArray);
如果我们尝试像这样添加 ConfigureAwait 调用:
await using var memoryStream = new MemoryStream(fileByteArray).ConfigureAwait(false);
这会导致 memoryStream 成为 ConfiguredAsyncDisposable 而不是实际的 MemoryStream,这甚至会阻止进一步的代码编译。
我们如何将 ConfigureAwait 添加到我们的 await using 语句中以删除警告,但仍然使我们的 memoryStream 保持为实际的 MemoryStream?如果可能的话,我们宁愿不必压制它。
这可能有帮助
https://www.tabsoverspaces.com/233779-using-await-using-iasyncdisposable-with-configureawait
var memoryStream = new MemoryStream(fileByteArray);
await using (memoryStream.ConfigureAwait(false))
{
...
}
我们有一个 .net core 3.1 项目,我们刚刚将 roslyn 分析器升级到 6.0 版。这样做之后,以下代码行开始收到“CA2007:考虑在等待的任务上调用 ConfigureAwait”。错误:
await using var memoryStream = new MemoryStream(fileByteArray);
如果我们尝试像这样添加 ConfigureAwait 调用:
await using var memoryStream = new MemoryStream(fileByteArray).ConfigureAwait(false);
这会导致 memoryStream 成为 ConfiguredAsyncDisposable 而不是实际的 MemoryStream,这甚至会阻止进一步的代码编译。
我们如何将 ConfigureAwait 添加到我们的 await using 语句中以删除警告,但仍然使我们的 memoryStream 保持为实际的 MemoryStream?如果可能的话,我们宁愿不必压制它。
这可能有帮助 https://www.tabsoverspaces.com/233779-using-await-using-iasyncdisposable-with-configureawait
var memoryStream = new MemoryStream(fileByteArray);
await using (memoryStream.ConfigureAwait(false))
{
...
}