2013-02-08 17 views
7

के लिए सभी स्टाइलकॉप चेतावनियों को अक्षम करें मैं एक आवेदन में काम कर रहा हूं और डेमो उद्देश्य के लिए कुछ कक्षाएं विकसित कर रहा हूं। मुझे पता है कि इन वर्गों को भविष्य में हटा दिया जाएगा।एक विशिष्ट सी # कक्षा

क्या उन कक्षाओं के लिए सभी स्टाइलकॉप चेतावनियों को अनदेखा करना संभव है क्योंकि मैं उन चेतावनियों पर समय बिताना नहीं चाहता हूं?

मैंने खोज की लेकिन पाया कि मैं केवल स्टाइलकॉप में सेटिंग के माध्यम से अनदेखा कर सकता हूं (इससे अन्य वर्ग भी प्रभावित होंगे) या कुछ विशिष्ट नियम (मैं बस सभी चेतावनियों को अनदेखा करना चाहता हूं)।

+0

स्टाइलकॉप चेतावनियां या त्रुटियां? – daryal

उत्तर

15

StyleCop 4.4.0 के साथ शुरू, यह भी संभव है एक एकल दमन विशेषता का उपयोग कर एक नियम के नाम स्थान के अंदर सभी नियमों का दमन करने के लिए, है। यह एक चेकस्टीड और नियम नाम को एक तारांकन के साथ बदलकर इंगित किया जाता है। निम्न कोड उदाहरण आंतरिक वर्ग के भीतर स्टाइलकॉप के डिफ़ॉल्ट दस्तावेज़ नियमों को दबा देता है। इस मामले में, स्टाइलकॉप अभी भी एक उल्लंघन को ध्वजांकित करेगा जो इंगित करता है कि बाहरी वर्ग में दस्तावेज़ अनुपलब्ध है, लेकिन यह आंतरिक वर्ग और इसकी सामग्री के लिए सभी दस्तावेज़ नियमों को अनदेखा कर देगा।

public class OuterClass 
{ 
    [SuppressMessage("StyleCop.CSharp.DocumentationRules", "*")] 
    public class InnerClass 
    { 
     public void MyUndocumentedMethod 
     { 
     } 
    } 
} 

http://stylecop.soyuz5.com/Suppressions.html

-1

आप कोड के ब्लॉक में विशेषताओं को जोड़कर नियमों को दबा सकते हैं। यहाँ ब्लॉग पोस्ट नीचे लिंक से एक वर्ग पर एक सरल उदाहरण है, लेकिन आप व्यक्तिगत रूप से विभिन्न सदस्यों पर यह कर सकते हैं:

[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented")] 
public class MyUndocumentedClass 
{ 
    public void MyUndocumentedMethod {} 
} 
+2

यह केवल SA1600 दबाएगा। –

18

आप शीर्ष पर इस शीर्ष लेख को जोड़कर एक फ़ाइल को संसाधित बिल्कुल नहीं में StyleCop चाल कर सकते हैं:

//------------------------------------------------------------------------------ 
// <auto-generated> 
// Well, not really. This is just a trick to get StyleCop off my back. 
// </auto-generated> 
//------------------------------------------------------------------------------ 
+0

मैंने यह किया, लेकिन काम नहीं किया। मैं अभी भी वही चेतावनियां देख सकता हूं। –

+0

एक ऑटो जेनरेट की गई फ़ाइल में कुछ भी जोड़ने में कोई अंतर्निहित समस्या नहीं है, हालांकि? यदि जनरेटेड कोड – DevDave

+2

@ टायलर अपडेट किया गया है तो इसे प्रतिस्थापित किया जा सकता है: फ़ाइल हेडॉगिंग करने वाले हेडर में पेस्ट करना वास्तव में ऐसा नहीं करता है। – Jon

1

आप एक फ़ाइल से अधिक चलने से StyleCop को रोकने के लिए चाहते हैं, तो आप इसे अपने .csproj ExcludeFromStyleCop विशेषता http://stylecop.codeplex.com/wikipage?title=Using%20StyleCop%20on%20Legacy%20Projects&referringTitle=Documentation में उल्लेख किया है का उपयोग कर फ़ाइल में बाहर रखा गया चिह्नित कर सकते हैं।

12

उत्तर के लिए Bartłomiej Mucha के लिए धन्यवाद मैंने अभी उपयोग किया है। जैसा कि मैंने पाया, "*" विशिष्ट नियम के लिए अच्छी तरह से काम करता है, लेकिन आपको प्रत्येक श्रेणी के लिए दमन जोड़ना होगा। यहां पूरा सेट है - यदि आप इन्हें कक्षा के शीर्ष में कॉपी करते हैं, तो आपको यह पता होना चाहिए कि सभी स्टाइलकॉप त्रुटियों को दबाया गया है:

[SuppressMessage("StyleCop.CSharp.NamingRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.LayoutRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.OrderingRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.SpacingRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
internal class MyClass 
{ 
    // ... 
} 
संबंधित मुद्दे