2009-07-08 5 views
17

मैंने अपने xml स्कीमा के आधार पर कक्षा उत्पन्न करने के लिए xsd.exe उपकरण का उपयोग किया। इसने डीबगरस्टेप थ्रू एट्रिब्यूट के साथ एक सार्वजनिक आंशिक वर्ग बनाया। खैर, मैंने इस कक्षा के लिए अपना कस्टम कोड लिखने के लिए एक और आंशिक क्लास फ़ाइल बनाई है और मैं इस कोड में कदम उठाने में सक्षम होना चाहता हूं लेकिन ऐसा लगता है कि डीबगर पर चरण-दर-विशेषता विशेषता को लागू कर रहा है, मेरी आंशिक कक्षा कुंआ। क्या प्रत्येक बार जब मैं आंशिक कक्षा को पुन: उत्पन्न करता हूं तो मैन्युअल रूप से विशेषता को हटाए बिना मेरे कोड में कदम उठाने का कोई आसान तरीका है?डीबगर StepThroughAttribute को मेरी गैर-एक्सएसडी-जेनरेटेड आंशिक कक्षा में आवेदन करने से रोकें?

उत्तर

11
  1. आप डीबगर के तहत उपकरण> विकल्प> Debugger-> सामान्य इस विशेषता की अनदेखी कर सकते हैं। अनचेक करें "बस मेरा कोड सक्षम करें (केवल प्रबंधित)"।
  2. आप किसी अन्य वर्ग/विधियों के लिए आंशिक वर्ग को रैपर के रूप में भी उपयोग कर सकते हैं। आंशिक वर्ग में विधियां केवल स्टब्स होंगी जो नई कक्षा में वास्तविक विधियों को कॉल करती हैं। डीबगर विशेषता के साथ सजाए गए विधि को छोड़ देगा लेकिन फिर भी आपको कक्षा को लपेटने की अनुमति देता है। उदाहरण नीचे ...

//

[DebuggerStepThrough] 
static void DebuggerStepThroughInPartialClass() 
{ 
    WrappedClass.NonDebuggerStepThrough(); 
} 

class WrappedClass{ 
    static void NonDebuggerStepThroughInNewClass() 
    { 
     int bar = 0; 
     bar++; 
    } 
} 
+0

मैं कुछ विशेषताओं को मैंने अपने आंशिक वर्ग पर डाल सकता है जो मुझे यह में कदम करने की अनुमति होगी के लिए उम्मीद कर रही थी लेकिन मुझे लगता है कि वह एक विकल्प नहीं है। जब भी मुझे इसे उत्पन्न करने की आवश्यकता होती है, तो मैं शायद जेनरेट क्लास से मैन्युअल रूप से विशेषता को मैन्युअल रूप से हटा दूंगा, जो शायद अक्सर नहीं होगा। उत्तर देने के लिये धन्यवाद! – Lyndal

+0

जब आप को अक्षम 'अभी-अभी अपना कोड सक्षम करें' आप ब्रेकप्वाइंट तुरंत यह दर्शाता है एक ठोस लाल वृत्त की ओर रुख देखना चाहिए अब डिबग किया जा सकता है –

0

सबसे अच्छा तरीका है बस उत्पन्न कोड से विशेषता लाइनों को हटाने के लिए है। आईएमएचओ कमांड विंडो पर उपनाम का उपयोग करने का सबसे आसान तरीका है।

उदाहरण:

1) कमांड विंडो (Ctrl + A)

2) टाइप खोलें: (वीबी संस्करण)

alias removenodebug Edit.Replace "(?([^\r\n])\s)*System.Diagnostics.DebuggerStepThroughAttribute\(\),\s*_\r\n(?([^\r\n])\s)*" "" /d /regex /all 

3) अब आप एक उपनाम है & को खोजने के लिए वर्तमान दस्तावेज़ पर उन पंक्तियों को प्रतिस्थापित करें। आप बस कमांड विंडो में टाइप कर सकते हैं:

removenodebug 

और विशेषता लाइनों चले गए हैं।

नोट: नियमित रूप से इस उदाहरण में प्रयुक्त अभिव्यक्ति VB कोड के लिए है, लेकिन यह भी सी # के लिए कन्वर्ट करने के लिए मुश्किल नहीं होना चाहिए।

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