feo*_*rex 5 code-analysis fxcop visual-studio-2010 visual-studio suppressmessage
我有一个像这样的课:
public class Foo
{
public readonly int A = 1;
public readonly int B = 2;
}
Run Code Online (Sandbox Code Playgroud)
当我运行内置代码分析工具的VS2010时,我得到两个相同的警告:" 字段"......在其声明类型之外可见,将其可访问性更改为私有并添加属性,具有与字段相同的可访问性目前,提供访问权限 '.
我想为我的类Foo中的所有字段禁止此警告,但我不想用SuppressMessage属性标记每个字段,如下所示:
public class Foo
{
[SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
public readonly int A = 1;
[SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
public readonly int B = 2;
}
Run Code Online (Sandbox Code Playgroud)
我想标记所有类成员,使用如下代码:
[SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields")]
public class Foo
{
public readonly int A = 1;
public readonly int B = 2;
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码不起作用,我仍然得到代码分析警告.我该怎么做才能正确?
Cod*_*ked 10
使用SuppressMessageAttribute无法一次抑制多条消息.
正如讨论可以在这里找到,但相关部分是:
您遇到了关于SuppressMessage的常见误解.
每次将SuppressMessage放在源文件中时,都可以完全抑制一个问题(网格中有一个"行").期.
SuppressMessage可以放置在"违规"附近或模块级别.模块级,汇编级和全局抑制都意味着相同的事情.通过放置在模块级别,您不会立即抑制问题的多个实例.您只需在代码的不同位置找到SuppressMessage.例如,您可以在单个文件中收集与程序集相关的所有抑制(例如,GlobalSuppressions.cs).
使用模块级SuppressMessage时,必须指定目标.目标必须完全匹配GUI中报告的违反规则的内容.
无法使用SuppressMessage来抑制类的整个范围或命名空间的整个范围的规则.
| 归档时间: |
|
| 查看次数: |
4980 次 |
| 最近记录: |