2012-03-15 66 views
0

我正在開發一些使用Web Api的異步代碼,並且我收到了很多我想壓制的FxCop錯誤。例如,在我的控制器下面的代碼會觸發這些錯誤:忽略某些特定情況下的內置FxCop規則。自定義FxCop規則?

  1. UsePropertiesWhereAppropriate
  2. MarkMembersAsStatic
  3. DoNotNestGenericTypesInMemberSignatures
public Task<HttpResponseMessage<IEnumerable<Foo>>> GetAsync() 
{ 
} 

我不想抑制這些規則整個大會,所以它似乎是唯一的方法在代碼中抑制錯誤是爲每個方法上違反的每個規則添加一個SuppressMessage屬性。有沒有更好的方法來抑制錯誤?我正在考慮自定義FxCop規則...是否可以創建一個規則,如「忽略DoNotNestGenericTypesInMemberSignaturesTask<T>」或「忽略任何類型繼承自Bar類的規則」?

回答

1

不,沒有辦法讓微軟提供的任何規則有條件地忽略某些類型或類似的成員。你有三個基本的選擇:

  1. 禁止每個違反獨立,
  2. 禁用規則完全包含「特殊」類型的組件,或
  3. 禁用微軟提供的規則,而是提供替代的自定義規則那些能夠忽略你的類型。

就個人而言,我會選擇#1,但情況因人而異...