का उपयोग करके किसी ऑब्जेक्ट को प्रस्तुत करने के लिए कोई विधि मौजूद है, मेरे पास डीबगर डिस्प्ले एट्रिब्यूट के साथ सजाए गए कई वर्ग हैं।क्या डीबगरडिस्प्ले एट्रिब्यूट
मैं यूनिट टेस्ट में ट्रेस स्टेटमेंट जोड़ने में सक्षम होना चाहता हूं जो इन वर्गों के उदाहरण प्रदर्शित करेगा।
क्या .NET Framework में कोई विधि मौजूद है जो डीबगर डिस्प्ले एट्रिब्यूट (या किसी भी डीबगर डिस्प्लेएट्रिब्यूट को परिभाषित नहीं किया गया है) का उपयोग करने के लिए वापस टॉगरिंग() का उपयोग करने के लिए स्वरूपित ऑब्जेक्ट प्रदर्शित करेगा।
संपादित
स्पष्ट करने के लिए, मैं वहाँ उम्मीद थी फ्रेमवर्क में निर्मित कुछ हो सकता है। मुझे पता है कि मैं डीबगर डिस्प्ले एट्रिब्यूट से वैल्यू प्रॉपर्टी प्राप्त कर सकता हूं, लेकिन मुझे डीबगर डीस्प्लेएट्रिब्यूट.वेल्यू द्वारा प्रतिनिधित्व प्रारूप स्ट्रिंग का उपयोग करके अपना उदाहरण प्रारूपित करने की आवश्यकता है।
तो मैं अपने खुद के रोल, मैं निम्नलिखित लाइनों के साथ एक विस्तार विधि की परिकल्पना चाहते हैं:
public string FormatDebugDisplay(this object value)
{
DebugDisplayAttribute attribute = ... get the attribute for value ...
if (attribute = null) return value.ToString();
string formatString = attribute.Value;
??? How do I format value using formatString ???
return SomeFormatMethod(formatString, value);
}
धन्यवाद। जिस तरह से आप वर्णन करने की कोशिश कर रहे थे, उसके उद्देश्य को हर तरह के तरीके से पराजित करने के तरीके में अपनी खुद की विधि लिखना। मैं प्रश्न में कक्षाओं के लिए ToString() ओवरराइड के साथ चला गया है। – Joe
यदि आपका एप्लिकेशन कोड ToString() को कोई अर्थ निर्दिष्ट नहीं करता है, तो हाँ, यह आसान है। कुछ मामलों में, ToString() में पहले से ही एक अर्थ है (उदा।किसी सूची बॉक्स में ऑब्जेक्ट को प्रदर्शित करने के लिए), और उन मामलों में, डीबगर डिस्प्ले प्लस एक विधि अभी भी उपयोगी हो सकती है। –
आपको मूल्य प्रदान करने वाली विधि लिखने के लिए "अपने ऐप में विजुअल स्टूडियो डीबगर को एम्बेड करने" की आवश्यकता नहीं होगी। मुझे संदेह होगा कि डीबगर डिस्प्ले के _most_ उपयोग सरल संपत्ति मान हैं, और यह लागू करना एक मूल्यवान तरीका होगा। –