मुझे लगता है कि आपने गलत समझा है कि क्या प्रतिबिंब है। प्रतिबिंब आपको आपके द्वारा चलाए जा रहे कोड को बदलने की अनुमति नहीं देता है। यह आपको अपना कोड पढ़ने और उस कोड को चलाने की अनुमति भी दे सकता है।
प्रतिबिंब के साथ। स्वीकार करें कि आप एक पूरी नई असेंबली लिख सकते हैं और फिर इसे स्मृति में लोड कर सकते हैं।
हालांकि आप रनटाइम पर कक्षा नहीं बदल सकते हैं। कल्पना कीजिए, आपके पास एक कक्षा फू है, आप उनमें से एक पूरे समूह को शांत करते हैं, फिर कक्षा को बदलने का फैसला करते हैं।
आपके द्वारा पहले से ही किए गए सभी फ़ूज़ का क्या होना चाहिए?
हालांकि, आप इसे क्या कर सकते हैं प्रतिबिंब का उपयोग करें। एक नई कक्षा बनाने के लिए प्रवेश करें जो फू को विरासत में लाता है, जिसे बार कहा जाता है, और फिर उस वर्ग को जो भी चाहिए उसे जोड़ें।
वैकल्पिक रूप से यदि आप संकलन समय के बाद किसी वर्ग में प्रोग्रामेटिक रूप से संपत्ति जोड़ना चाहते हैं लेकिन रन टाइम से पहले, आप आईएल बुनाई/एओपी देख सकते हैं। मेरा सुझाव है कि PostSharp या Fody देखें यदि आप इसमें रुचि रखते हैं।
और फिर हर जगह प्रतिबिंब के माध्यम से उन्हें एक्सेस करें? एक 'शब्दकोश <स्ट्रिंग, ऑब्जेक्ट>' के बारे में कैसे? –
@ हेनकहोल्टरमैन हां हेनक बाद में मैं उन्हें 'MyClass.GetType() के साथ एक्सेस करता हूं। GetProperties() ' –
इसके लिए आपको किस केस-केस की आवश्यकता है? 'ICustomeTypeDescriptor' के बारे में क्या? – Dennis