2010-03-29 16 views
0

FxCop目前正在報告違反特定方法的相同規則 - 它有兩個輸出參數,因爲我想將兩個值返回給調用者而不爲其創建結構。我想知道匿名類型是否能解決我的問題,但在我寫這個方法的時候我不知道他們。防止在FxCop中發生同一規則違規的多重報告 - 什麼是Id?

無論如何,我得到CheckId CA1021報告每個參數一次。我已經從FxCop中複製了SuppressMessage文本,然後意識到每個消息的Id是不同的!對我來說,你似乎只需要CheckId,所以...

  1. 什麼是Id用於?我一直無法在網上找到關於它的信息。
  2. 身份證會保持不變嗎?我假設如此,或SuppressMessage不會按照人們希望的方式工作
  3. 是否有指定SuppressMessage屬性的方法,以便它可以取消全部 Ids?
+0

我沒有你的FxCop問題的答案,但你不能從一個方法中返回匿名類型而不做一些反射技巧。 – richeym 2010-03-29 22:10:54

+0

好的,謝謝你的迴應! – Dave 2010-03-29 22:40:47

回答

1

In Source Suppression Overview

屬性可以只適用於一種方法和不能嵌入方法體內。但是,您可以將標識符指定爲消息標識,以區分方法中多次發生違規事件。

換句話說:MessageId用於在範圍內抑制單個錯誤實例;如果您擔心在相同的方法中意外地再次引入錯誤,並希望通過FxCop捕獲新的介紹(或者如果您想爲每個問題的發生指定不同的理由),這很方便。如果您不害怕引入更多這些錯誤(或者不在乎如果這樣做),並且具有相同的理由,則可以簡單地忽略Suppress語句中的MessageId:[SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters")]