मैं अभी भी एएसपी.नेट दुनिया के लिए नया हूं, इसलिए मैं यहां आधार से बाहर निकल सकता हूं, लेकिन अब तक यह मेरे (सीमित) ज्ञान का सर्वोत्तम है !एएसपी.नेट वेब सेवा परिणाम, प्रॉक्सी क्लासेस और टाइप रूपांतरण
आइए कहें कि मेरे पास व्यवसाय नामस्थान में एक मानक व्यावसायिक वस्तु "संपर्क" है। मैं डेटाबेस से संपर्क की जानकारी पुनर्प्राप्त करने के लिए एक वेब सेवा लिखता हूं, और इसे वापस कर देता हूं। मैं फिर विवरण के अनुरोध के लिए एक ग्राहक आवेदन लिखता हूं।
अब, मैं भी एक उपयोगिता विधि बनाता हूं जो "संपर्क" लेता है और इसके साथ कुछ जादू करता है, जैसे Utils.BuyContactNewHat()
कहते हैं। निश्चित रूप से Business.Contact
का संपर्क लेता है।
मैं फिर अपने क्लाइंट एप्लिकेशन पर वापस जाता हूं और BuyContactNewHat
विधि का उपयोग करना चाहता हूं, इसलिए मैं नामस्थान का संदर्भ जोड़ता हूं और वहां है। हालांकि, एक समस्या के साथ पैदा होती है:
Contact c = MyWebService.GetContact("Rob);
Utils.BuyContactNewHat(c); // << Error Here
के बाद से GetContact
की वापसी प्रकार MyWebService.Contact
की अपेक्षा के अनुरूप है और न Business.Contact
। मैं समझता हूं कि ऐसा क्यों है, क्योंकि वेब सेवा तक पहुंचने पर, आप वास्तव में डब्लूएसडीएल द्वारा उत्पन्न प्रॉक्सी क्लास के खिलाफ प्रोग्रामिंग कर रहे हैं।
तो, क्या इस प्रकार के मेल के साथ निपटने का एक "आसान" तरीका है? मैं शायद एक जेनेरिक कनवर्टर क्लास बनाने की कोशिश कर रहा था जो प्रतिबिंब का उपयोग करता है ताकि यह सुनिश्चित किया जा सके कि दो वस्तुओं की एक ही संरचना है, केवल मूल्यों को एक से दूसरे में स्थानांतरित करने की तुलना में।