9

मेरे पास एक परिदृश्य है जहां मेरे पास एक डेटाबेस से लोड होने वाली एक काफी जटिल वस्तु है।घड़ी विंडो में एक ऑब्जेक्ट लेने का तरीका और "स्क्रिप्ट"

उस ऑब्जेक्ट में कई नेस्टेड ऑब्जेक्ट्स हैं। जबकि मैं डिबगिंग कर रहा हूं मुझे इस ऑब्जेक्ट का एक उदाहरण मिलता है कि मैं एक यूनिट टेस्ट में उपयोग करना चाहता हूं। अभी मुझे इस ऑब्जेक्ट को मैन्युअल रूप से बनाना है। चूंकि यह काफी जटिल है, मुझे थोड़ी देर लगती है।

यदि इस चर को एक टेक्स्ट विंडो (या क्लिपबोर्ड) में आउटपुट करने के लिए घड़ी विंडो को बताने का कोई तरीका था तो मेरा यूनिट परीक्षण समय बेहतर होगा।

ऐसा लगता है कि घड़ी की खिड़की में आवश्यक सभी जानकारी है।

मैं इसे बयान या ऐसी किसी भी चीज़ का उपयोग करने की उम्मीद नहीं करता, बस उस वर्ग की जानकारी का उपयोग करें और new कथन बनाएं (मेरे ऑब्जेक्ट के रूप में कई स्तरों के रूप में घोंसला)।

क्या वहां कोई ऐसा उपकरण है? (यदि नहीं हो सकता है मैं बस अपना भाग्य बनाने के लिए एक रास्ता मिल गया?)

+1

** ऑब्जेक्ट को ट्रैवर्स करते समय ** ** ** ** ** आउटपुट ** ** डीबग ** की कोशिश करें। अपने जीवन को आसान बनाने के लिए, आप स्वयं को इस ट्रैवर्सल विधि को भी तैयार कर सकते हैं और फिर इसे तत्काल विंडो में कॉल कर सकते हैं और यह डीबग करने के लिए आउटपुट होगा। और इसके दौरान, इसे JSON में परिवर्तित करें और फिर उस स्ट्रिंग का उपयोग अपने परीक्षण कोड में कंक्रीट उदाहरण पर वापस पार्स करने के लिए करें। JSON स्ट्रिंग से। सबसे सरल समाधान की संभावना है। –

+0

लेकिन आप निश्चित रूप से इसके लिए जा सकते हैं और एक वीएस एक्सटेंशन लिख सकते हैं जो घड़ी मेनू में ऑब्जेक्ट पर राइट-क्लिक करने के लिए संदर्भ मेनू आइटम जोड़ देगा और कहेंगे ** JSON को क्लिपबोर्ड पर रखें **। मुझे यकीन है कि इसे इंस्टॉल करने में बहुत खुशी होगी। ठीक उसी कारण से आपने प्रदान किया। –

+0

+1 मेरा प्रश्न बिल्कुल सही है। – adamdport

उत्तर

2

ऐसा कोई उपकरण है जो मैं जानता हूँ कि है, क्योंकि यह करने के लिए है ... यह बहुत जटिल:

  • वस्तुओं चक्रीय संदर्भ हो सकता है , और इसलिए
  • पर गहराई की कोई सीमा नहीं है, सिंगलटन ऑब्जेक्ट्स
  • के संदर्भ हो सकते हैं, वहां कन्स्ट्रक्टर पर पैरामीटर लेने वाले ऑब्जेक्ट्स के संदर्भ हो सकते हैं, यह कैसे पता लगा सकता है कि ऑब्जेक्ट को कैसे बनाया जाए?
  • या वस्तुओं कोई सार्वजनिक कंस्ट्रक्टर्स है, और एक कारखाने द्वारा निर्मित कर रहे हैं के लिए संदर्भ के बजाय
  • या कॉम के लिए संदर्भ वस्तुओं उस अर्थ केवल जबकि चल रहा है बनाने के लिए
  • या संदर्भ वस्तुओं: उदाहरण के लिए फ़ाइल धाराओं

एक आसान समाधान: ऑब्जेक्ट सीरियलज़ेबल (उदाहरण के लिए एक्सएमएल, या जेसन) को क्रमबद्ध करें, इसे क्रमबद्ध करें, धारावाहिक स्ट्रिंग को अपने यूनिट टेस्ट में कॉपी करें, और फिर यूनिट टेस्ट में इसे deserialize करें।

ऐसा नहीं है आसान समाधान: एक डिबगर विजुआलाइज़र लागू, एक विजुआलाइज़र वस्तु स्रोत के साथ: Debugger Visualizer and "Type is not marked as serializable"

इस तरह आप एक खिड़की बना सकते हैं और धारावाहिक वस्तु दिखाने ... आप शायद का उपयोग करना होगा सभी ऑब्जेक्ट गुणों, और बाल वस्तुओं को पढ़ने के लिए प्रतिबिंब, और इसी तरह।

+0

चक्रों से बचा जा सकता है ... लेकिन थोड़ा अधिक स्मृति उपभोग कर रहे हैं ...;) –

+0

चक्र से बचने की जटिलता है ... लेकिन मैंने कुछ अन्य चीजें सूचीबद्ध की हैं जो इस तरह के उपकरण को बनाना असंभव बना सकती हैं। –

+1

तो आप इसे फिर से क्रमबद्ध करने में सक्षम कैसे होंगे? सीरियलाइजेशन टूल पूरे जादू को उसी तरह करते हैं जैसे किसी भी कस्टम कोड को चाहिए। यह एक्सएमएल, जेएसओएन या कोई अन्य धारावाहिक होना चाहिए –

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