2010-07-15 11 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 केवल उन दमनों को संसाधित करता है जिन्हें एक ही लक्ष्य के खिलाफ घोषित उल्लंघन के रूप में घोषित किया जाता है। यदि यह आपके सीरियलाइज विधि पर उल्लंघन पाता है, तो केवल एक ही SuppressMessage विशेषताएँ जो उल्लंघन को "छिपाने" के लिए या तो विधि पर घोषित की जाती हैं या जिसकी लक्ष्य संपत्ति विधि की पहचान करती है।

यदि आप सीरियलज़र क्लास में अपनी प्रत्येक स्थिर विधि के लिए CA1000 उल्लंघन को दबाना चाहते हैं, तो आपको उन तरीकों के लिए एक SuppressMessage विशेषता बनाकर ऐसा करने की आवश्यकता होगी।

+2

तब स्कोप तर्क का बिंदु क्या है? :( –

+5

यह FxCop को पता है कि लक्ष्य तर्क किस प्रकार की बात का प्रतिनिधित्व करता है। उदाहरण के लिए, यदि लक्ष्य "एबीसी" है, तो क्या यह एबीसी नामक नामस्थान या नेमस्पेस एबी में सी नाम वाली कक्षा का संदर्भ देता है? "स्कोप" शायद "TargetKind" जैसे कुछ नामित किया जाए, लेकिन दुर्भाग्यवश, वह वास्तव में जो दर्शाता है उसे बदलता नहीं है ... –

संबंधित मुद्दे

 संबंधित मुद्दे