मैं कोड लिखते समय एक दोहराने योग्य कार्य को तेज करने का एक तरीका ढूंढ रहा हूं। मेरे पास रीशेपर है और मैं सोच रहा हूं कि एक अनुकूलन मुझे जो चाहिए वह कर सकता है।क्या रीशेर्पर कोड उत्पन्न कर सकता है जो गुणों को एक ऑब्जेक्ट से दूसरे ऑब्जेक्ट में कॉपी करता है?
मेरे पास एक ही प्रकार की दो वस्तुएं हैं। मैं एक वस्तु के सभी सार्वजनिक गुणों को अन्य ऑब्जेक्ट में कॉपी करना चाहता हूं। मैं इस मामले में उपकरण, ReSharper चाहता हूं, मेरे लिए कोड उत्पन्न करने के लिए। मैं इसे पहली वस्तु और दूसरी वस्तु के नाम बता दूंगा। मैं इसे पहली वस्तु के सभी सार्वजनिक गुणों को ढूंढना चाहता हूं और मानों को दूसरी वस्तु में कॉपी करना चाहता हूं।
foo.Name = moo.Name;
foo.Age = moo.Age;
foo.City = moo.City;
इस सरल कोड का स्वचालन कि प्रतियां दाएं से बाएं मूल्यों समय की बचत हो जाएगा और मैं कर रहा हूँ:
यहाँ कोड के प्रकार मैं ReSharper जैसे उपकरण के साथ उत्पन्न की है, देख रहा हूँ है सोच रहा है कि रीशेपर इसे कर सकता है। हालांकि, मैंने इसके लिए खोजों में कुछ भी पॉप-अप नहीं देखा है।
मैं कोडस्मिथ कोड जनरेशन तकनीक या टी 4 टेम्पलेट की तलाश नहीं कर रहा हूं क्योंकि मैं केवल अपनी कक्षा के अंदर इन विशिष्ट लाइनों को उत्पन्न करना चाहता हूं, उत्पन्न नहीं करता हूं और पूरी कक्षा या एक अलग फ़ाइल नहीं।
क्या किसी को कुछ कीस्ट्रोक दबाए जाने का कोई तरीका पता है, ऊपर "foo" और "moo" ऑब्जेक्ट नाम दर्ज करें और क्या टूल इन प्रतिलिपि को कोड की दाएं से बाएं रेखाओं से उत्पन्न करता है?
अद्यतन:
मैं ReSharper करने के लिए इमारत एक्सटेंशन पर कुछ प्रलेखन मिल जाती है और यह शायद उस मार्ग द्वारा प्राप्त किया जा सकता है, लेकिन यह वास्तव में शामिल लगता है।
http://www.jetbrains.net/confluence/display/ReSharper/PowerToys+Pack+3.0+User+Guide
यह एक सप्ताह के अंत में चुनौती की तरह लग रहे करने के लिए जब तक किसी और पहले से ही लिखा है की शुरुआत है।
मैं इस उपकरण कभी नहीं सुना था। डेटा एक्सेस परतों और डेटा अनुबंधों के साथ इस तरह के कोड को एक आवश्यकता बनाते हुए, यह एक अच्छा उपकरण है! – Vaccano
कुछ मामलों के लिए ऑटोमैपर निश्चित रूप से एक अच्छी बात है, लेकिन बड़ी मात्रा में वस्तुओं के लिए बहुत धीमी हो सकती है। – Telavian
हमने डीटीओ के एक टन के साथ एक बड़े उद्यम ऐप में ऑटोमैपर का उपयोग किया और 6 महीने बाद हमने इसे छोड़ दिया क्योंकि गुणों के सादे पुराने असाइनमेंट की तुलना में इसे बनाए रखना और डीबग करना मुश्किल था। एएम के खिलाफ एक बड़ी हिट नहीं माना जाना चाहिए, लेकिन अंत में हम एक बड़े त्रुटि संदेश को पढ़ने के बजाय कोड की एक पंक्ति को तोड़ना चाहते थे (त्रुटि संदेश सटीक और उपयोगी था)। – TheDev6