假设我有一个包含所有货币的枚举:
public enum CurrencyType
{
/// <summary>
/// United Arab Emirates dirham
/// </summary>
[EnumMember]
AED = 784,
/// <summary>
/// Afghan afghani
/// </summary>
[EnumMember]
AFN = 971,
/// <summary>
/// Albanian lek
/// </summary>
[EnumMember]
ALL = 008,
...
}
VS 2015代码分析一直抱怨每个成员都有100个CA1709违规问题。
这本身是一个有用的规则,我不想禁用它;但在这种特定情况下,它并没有太大帮助,因为是公共的,并且在许多其他项目中使用。
我可以抑制这个消息;然而,VS只提供了对每个成员抑制它的选项 - 这意味着我将有100个[SuppressMessage(...)]
行,这会使代码混乱。
是否有任何方法可以抑制所有CurrencyType
成员的所有CA1709,而不必为此项目中的所有其他代码抑制它,而无需编写100个[SuppressMessage(...)]
?
SuppressMessageAttribute
有一个Scope
参数,但文档对此不清楚。我已经尝试放置两个
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "type", Justification = "Currency codes are defined in ISO standard.")]
并且
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "member", Justification = "Currency codes are defined in ISO standard.")]
在
CurrencyType
本身上。也不起作用。
SuppressMessageAttribute
会改变所有成员的分析行为。CA1709是集成于VS代码分析(FxCop)警告,而不是StyleCop的警告。 - penartur