我正在处理的c#项目打开了“错误警告”,它们在代码中有很多抑制作用。其中包括:
[System.Diagnostics.CodeAnalysis.SuppressMessage(
"Microsoft.Maintainability"
, "CA1500:VariableNamesShouldNotMatchFieldNames"
, MessageId = "CS$<>8__locals1")]如果删除抑制,则生成失败。如何找出c#代码中哪个特定的标识符会引起警告?
发布于 2018-03-05 18:43:33
在这种情况下,您不能。看到MessageId值是"CS$<>8__locals1" --这是一个C#编译器--生成的本地代码,所以您不会直接在C#源代码中看到它,您必须使用像ILSpy或Reflector这样的工具来查看CIL和变量。According to this QA,locals名称意味着它是闭包类变量的名称,这意味着您在某个地方使用lambda函数。
但是,不需要手动阻止这种情况,因为FxCop非常聪明,能够了解C#编译器生成的局部变量和字段(字段或它们的封闭类型无论如何都会用[CompilerGenerated]注释)。我猜您的构建过程使用的是最近的C#编译器,但它是一个非常旧的FxCop版本,它不识别新的C#语言特性。
https://stackoverflow.com/questions/49117301
复制相似问题