忽略某些特定情况下的内置FxCop规则。自定义FxCop规则?

时间:2012-03-15 00:37:22

标签: c# .net fxcop

我正在使用Web Api开发一些异步代码,并且我得到很多我想要抑制的FxCop错误。例如,我的控制器中的以下代码将触发这些错误:

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

    我不想为整个程序集禁止这些规则,因此似乎是抑制代码中错误的唯一方法是为每个方法的每个违反规则添加SuppressMessage属性。有没有更好的方法来抑制错误?我正在考虑自定义FxCop规则...是否可以创建一个规则,例如“忽略DoNotNestGenericTypesInMemberSignatures Task<T>”或“忽略继承自Bar类的任何类型的规则”?

2 个答案:

答案 0 :(得分:1)

不,没有办法让Microsoft提供的任何规则有条件地忽略某些类型或类似的成员。您有三个基本选择:

  1. 单独抑制每次违规,
  2. 完全禁用包含“特殊”类型或
  3. 的程序集的规则
  4. 禁用Microsoft提供的规则,但提供可忽略您的类型的备用自定义规则。
  5. 就个人而言,我会选择#1,但是ymmv ......

答案 1 :(得分:0)

我认为最接近的答案是Custom Rule in FxCop to only apply to methods called by particular type's method?希望这对你有用,否则我会说答案是否定的