विशेषता [डीबगर डिस्प्ले] (Using DebuggerDisplayAttribute) वीएस 2010/2008 के डीबगर में डिस्प्ले को परिभाषित करने की अनुमति देता है। AutoExp.cs/.dll को संशोधित करके, मैं सिस्टम प्रकारों और तृतीय पक्ष प्रकारों के प्रदर्शन को ओवरराइड भी कर सकता हूं, उदा।[डीबगर डिस्प्ले] विशेषता विस्तार विधियों का उपयोग
[assembly: DebuggerDisplay (@"\{Name = {Name} FullName = {FullName}}", Target = typeof (Type))]
आंतरिक घुंघराले ब्रेसिज़ में मैं फ़ील्ड, गुणों और विधियों का संदर्भ दे सकता हूं। क्या विस्तार विधियों का संदर्भ देना संभव है?
उदाहरण के तौर पर, मैंने छोटे प्रकार के नाम प्रदर्शित करने की कोशिश की, उदा। के बजाय $SCG.Dictionary
। मैं AutoExp.cs को यह कहा:
using DbgDisp;
[assembly: DebuggerDisplay (@"\{Name = {Name} ShortName = {ShortName()}}", Target = typeof (Type))]
namespace DbgDisp {
public static class Ext {
public static string ShortName (this Type t) { return string.Format ("[{0}]", t.Name); }
} // Ext
} // DbgDisp
लेकिन डिबगर शिकायत: नाम 'SHORTNAME' वर्तमान संदर्भ में मौजूद नहीं है।
क्या मुझे कुछ याद आ रहा है, या क्या वहां एक्सटेंशन विधियों का उपयोग करना संभव नहीं है?
मुझे पता है कि मैं ToString()
ओवरराइड कर सकता हूं, लेकिन यह केवल मेरे अपने प्रकार के लिए मदद करता है।
, के रूप में यह गुजर डिबग प्रदर्शन के संदर्भ में अपने खुद के कोड को निष्पादित करने के कुछ स्मार्ट दूसरी तरह के तरीकों वास्तव में आप उपयोग कर सकते हैं दिलचस्प है, भी :) होगा – MillKa
इससे मुझे बनाने डिबगिंग के लिए एक कस्टम प्रदर्शन स्ट्रिंग। एक मुहरबंद वर्ग के लिए एक विस्तार का उपयोग कर संभव था। seesharpers उत्तर को प्रति साइट नीति के स्वीकृत उत्तर के रूप में चिह्नित किया जाना चाहिए: http://meta.stackexchange.com/questions/62252/is-it-poor-form-to-switch-accepted-answers – Taterhead