【发布时间】:2011-04-27 15:13:57
【问题描述】:
c#/.net/fxcop!
...在课堂上,我希望 FxCop 闭嘴抱怨
Warning CA1062 : Microsoft.Design :
In externally visible method 'xyz', validate parameter 'a' before using it.
基本上,这条规则建议我在代码中几乎每个方法的开头都放置一个if (a == null) throw new ArgumentNullException("a");。这很糟糕并改变了异常处理逻辑。
所以,我把它放到了我的班级主体中:
[SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods",
Scope = "Type",
MessageId = "0",
Justification = "We love danger... so far.")]
无论如何,这甚至不会抑制一条消息 - 我仍然收到所有这些警告。如果它正好位于一个错误的方法定义之上,它只会抑制警告(即它只抑制一个警告,而不是所有这种类型)。奇怪的是,相同的语法适用于我课堂上多次出现的其他问题。
我不知道自己做错了什么,坦率地说我不太了解如何使用属性参数..http://msdn.microsoft.com/de-de/library/ms244717.aspx 没有过多介绍细节。 :T ...无论如何,有什么不对的地方吗?
【问题讨论】:
-
虽然这不是重复的,但它也可能会解决您的问题:stackoverflow.com/questions/35551/… 在那里查看答案,我敢打赌它会有所帮助
-
为什么不通过项目属性设置来抑制这些警告。