2012-03-16 13 views
14

मान लिया जाये कि वस्तुओं आप AutoMapper साथ मानचित्रण रहे हैं कोई कस्टम मैपिंग की आवश्यकता होती है, वहाँ कभी ऐसा करने में एक बिंदु है:ऑटोमैपर - डायनामिक मैप पर मानचित्र का उपयोग क्यों करें?

Mapper.CreateMap<Src, Dest>(); 
// .... 
Mapper.Map(SrcObject, DestObj); 

यदि कोई कस्टम मैपिंग के लिए आवश्यक हैं, ऊपर दृष्टिकोण तुम सिर्फ अधिक कुछ भी हासिल करता है किसी भी पूर्व विन्यास की आवश्यकता के बिना गतिशील मैप का उपयोग कर?

Mapper.DynamicMap(SrcObject, DestObj); 

मुझे समझ नहीं DynamicMapआवश्यक जब आप गुमनाम प्रकार मानचित्रण रहे हैं कि, लेकिन मैं चाहे DyanmicMap के बारे में पूछ रहा हूँ स्थिर प्रकार है कि कोई कस्टम मैपिंग की आवश्यकता के लिए कभी को प्राथमिकता नहीं दी है।

उत्तर

16

थोड़ी देर गया के बाद से मैं पिछले इस्तेमाल किया Automapper, लेकिन अगर मैं सही ढंग से याद रखें:

आदेश Map का उपयोग करने के लिए, आप स्पष्ट रूप से CreateMap के माध्यम से पहले उन मैप्स निर्दिष्ट करने के लिए की जरूरत है। बाद में आप AssertConfigurationIsValid पर कॉल करके अपने कॉन्फ़िगरेशन को सत्यापित कर सकते हैं।

यह एक त्रुटि मध्य निष्पादन का सामना करने के बजाय आपके आवेदन को लॉन्च करने के बाद सही होता है (यह देखते हुए कि आप मैपिंग बनाते हैं और स्टार्टअप पर मान्य करते हैं, जिसे अनुशंसित किया जाता है)।

इसके अलावा कुछ प्रकार 1: 1 से मेल नहीं खाते हैं, इसलिए आप सटीक मैपिंग निर्दिष्ट करना चाहते हैं, सुनिश्चित नहीं है कि DynamicMap आपके द्वारा मैन्युअल रूप से पेश किए गए मानचित्र का उपयोग करता है, वास्तव में मुझे लगता है कि यह नहीं है। बस की जाँच की
, DynamicMap GitHub पर वर्तमान संस्करण अप में मौजूदा मानचित्र पर फिर से गिर जाता है।

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

+0

+1 - आह, मुझे लगता है कि एक 'Mapper.AssertConfigurationIsValid(); '- शुरुआत करने वालों से परे कुछ और ?? :) –

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