找出哪个局部变量需要这种抑制

时间:2018-03-05 18:37:59

标签: c# error-suppression

我正在使用的c#项目有"警告为错误"打开,他们在代码中有很多压制。其中包括以下内容:

AS

如果删除抑制,则构建失败。如何找出c#代码中的哪个特定标识符导致警告?

1 个答案:

答案 0 :(得分:2)

在这种情况下,你不能。看到MessageId值是"CS$<>8__locals1" - 这是C#编译器生成的本地,所以你不会直接在C#源代码中看到它 - 你必须使用像ILSpy或Reflector这样的工具查看CIL和变量。 According to this QAlocals名称表示它是闭包类变量的名称 - 这意味着你在某处使用lambda函数。

然而,没有必要手动抑制它,因为FxCop足够聪明,可以了解C#编译器生成的本地和字段(字段或它们的封闭类型无论如何都会用[CompilerGenerated]注释)。我猜你的构建过程是使用最新的C#编译器,但是FxCop的旧版本不能识别新的C#语言特性。