2013-12-13 6 views
11

सामान्य प्रकार पैरामीटर विशेषता के साथ निम्नलिखित सी # कोड होने से: StyleCop के चालू रहते हुएकैसे को दबाने के लिए StyleCop त्रुटि SA0102: CSharp.CsParser: जब सामान्य प्रकार पैरामीटर का उपयोग कर एक सिंटैक्स त्रुटि फ़ाइल में पाया गया है विशेषताओं का

[System.AttributeUsage(System.AttributeTargets.GenericParameter)] 
public class GenericParameterAttribute : System.Attribute 
{ 
} 
public class GenericClass<[GenericParameter] T> 
{ 
} 

एकीकरण (StyleCop.targets .csproj फ़ाइल में आयातित) StyleCop रिटर्न त्रुटि और संकलन में विफल रहता है:

Error 1 SA0102 : CSharp.CsParser : A syntax error has been discovered in file ...

ठीक संकलित .csproj फ़ाइल में आयातित StyleCop.targets के बिना।

पर्यावरण

  • StyleCop संस्करण 4.7.47.0
  • .नेट फ्रेमवर्क 4,0

मैं StyleCop प्रलेखन साइट http://www.stylecop.com/docs/StyleCop%20Rules.html पर कोड SA0102 नहीं मिल सकता है ( http://stylecop.codeplex.com/releases/view/79972 से नवीनतम उपलब्ध है) - यह ऐसा लगता है कि SA0102 स्टाइलकॉप नियम नहीं है, संभव है कि यह आंतरिक StyleCop त्रुटि का कोड हो।

तो प्रश्न: स्टाइलकॉप त्रुटि SA0102 को दबाने के लिए कैसे करें?

+2

"फ़ाइल में एक वाक्यविन्यास त्रुटि मिली है।" क्या एक भ्रामक त्रुटि संदेश है। यह स्पष्ट करना चाहिए कि संकलक की बजाय स्टाइल कॉप से ​​त्रुटि है। आपका कोड ठीक है, लेकिन स्टाइल कॉप [सी # 6] (https://github.com/dotnet/roslyn/wiki/New-Language- विशेषताएं-in-C%23-6) से निपट नहीं सकता है। –

उत्तर

8

यह विशेषता इस तरह से इस त्रुटि को दबाने के लिए असंभव लगता है:

[SuppressMessage("StyleCopNameSpace", "SA0102:RuleNameHere")] 

इस Post में संबंधित के रूप में, जब StyleCop एक आंतरिक त्रुटि का सामना करना पड़ता इस संदेश को प्रदर्शित किया जाता है: के लिए

jasonall May 18, 2010 at 10:00 PM: It is actually not possible to suppress SA0101 or SA0102. These are special case “rules” which are thrown whenever StyleCop encounters an internal error. The only workarounds for you would be to disable this file from analysis completely, or stop using optional parameters until upgrading to StyleCop 4.4.

+2

हां, [SuppressMessage] विशेषता के साथ दबाकर काम नहीं कर रहा है - पार्स त्रुटि बहुत पहले हुई थी। लेकिन यह पोस्ट मुझे स्टाइलकॉप को केवल एक फ़ाइल के लिए अक्षम करने का तरीका खोजने में मदद करती है (उस पर राइट क्लिक करें) और पूरे प्रोजेक्ट के लिए नहीं। धन्यवाद। –

2

देखो फ़ाइल जिसे आप .csproj फ़ाइल में StyleCop से बाहर करना चाहते हैं और ExcludeFromStyleCop तत्व को नीचे

<Compile Include="<filename>.cs"> 
    <ExcludeFromStyleCop>True</ExcludeFromStyleCop> 
</Compile> 
के रूप में जोड़ें
+0

हां, यह समाधान एक्सप्लोरर में फ़ाइल पर राइट क्लिक के समान है और फ़ाइल संदर्भ मेनू में स्टाइलकॉप से ​​बाहर निकलें का चयन करें। धन्यवाद। –

+3

यह कोई समाधान नहीं है क्योंकि यह अन्य सभी चेक भी दबाएगा। यही वह नहीं है जो ओपी हासिल करने की कोशिश कर रहा है। –

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