升级到Roslyn Analyzers 6.0版本后,出现CA2007错误

5

我们有一个 .net core 3.1 项目,我们刚刚将 roslyn analyzers 升级到版本 6.0。在这样做后,以下代码行开始出现“CA2007: 考虑在等待的任务上调用 ConfigureAwait。” 错误:

await using var memoryStream = new MemoryStream(fileByteArray);

如果我们尝试添加ConfigureAwait调用,代码如下:

await using var memoryStream = new MemoryStream(fileByteArray).ConfigureAwait(false);

这将导致memoryStream成为ConfiguredAsyncDisposable而不是实际的MemoryStream,这将阻止进一步的代码编译。

如何在我们的await using语句中添加ConfigureAwait以消除警告,但仍保持我们的memoryStream是实际的MemoryStream?如果可能的话,我们希望不必压制它。

1个回答

4

1
这与CA2000冲突,请参见https://issueexplorer.com/issue/dotnet/roslyn-analyzers/5712中的讨论。 - peter
与CA2000冲突意味着new MemoryStream将会有警告/错误:在失去作用域之前,请处理memoryStream--> 当前问题讨论链接: https://github.com/dotnet/roslyn-analyzers/issues/5712 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接