2010-07-15 3 views
8

전체 유형에 대해 FxCop 경고를 표시하지 않으려면 어떻게해야합니까? FxCop에서 전체 유형에 대한 경고를 표시하지 않으려면 어떻게해야합니까?

namespace ConsoleApplication1 
{ 

    public static class Serializer<T> 
    { 
     public static string Serialize(T obj) 
     { 
      return string.Empty; 
     } 


     public static T Deserialize(string str) 
     { 
      return default(T); 
     } 
    } 

이 시도하지만 나를 위해 작동하지 않습니다 :

[assembly: SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes", Scope = "Type", Target = "ConsoleApplication1.Serializer'1")] 

답변

8

불행하게도,이 작동하지 않습니다. FxCop은 탐지 된 위반과 동일한 대상에 대해 선언 된 억제를 처리합니다. Serialize 메서드에서 위반 사항을 발견하면 메서드 자체에서 선언 된 SuppressMessage 특성 또는 해당 메서드를 식별하는 Target 속성을 가진 SuppressMessage 특성 만 "숨길"수 있습니다.

Serializer 클래스의 각 정적 메서드에 대해 CA1000 위반을 표시하지 않으려면 각 메서드에 대해 SuppressMessage 특성을 만들어야합니다.

+2

그런 다음 범위 인수의 요점은 무엇입니까? : –

+5

FxCop은 Target 인수가 어떤 종류인지를 알 수 있습니다. 예를 들어 Target이 "ABC"인 경우 AB라는 네임 스페이스에서 ABC 또는 C 클래스라는 이름의 네임 스페이스를 참조합니까? "범위"는 아마 "TargetKind"와 같은 이름을 붙일 수 있지만, 불행하게도 그것이 실제로 나타내는 것을 바꿀 수는 없습니다 ... –