में संकलन समय प्रतिबिंब मैं अक्सर सी # कोड लिखता हूं जिसे संपत्ति नामों को व्यक्त करने के लिए जादू तारों का उपयोग करना होता है। हर कोई जादू तारों के साथ समस्याओं को जानता है। उन्हें रिफैक्टर करने में बहुत मुश्किल होती है, उनके पास कोई संकलन समय जांच नहीं होती है, और अक्सर वे समस्याओं का निदान करने के लिए कठिन होते हैं। फिर भी सी #/एनईटी उन्हें संपत्ति/वर्ग/विधि नामों का प्रतिनिधित्व करने के लिए पर पर उपयोग करता है।सी #
यह समस्या वर्षों और वर्षों तक जारी रही है, और वर्तमान में एकमात्र व्यवहार्य समाधान एक अभिव्यक्ति वृक्ष का उपयोग करना है जिसे संपत्ति के नाम के लिए रन-टाइम पर पार्स किया जाता है। यह आपको संतोषजनक संकलन-समय की जांच करता है, लेकिन यह कोड को जटिल करता है (प्रकार अभिव्यक्ति के पैरामीटर की आवश्यकता होती है), और इसमें रन-टाइम लागत होती है।
क्या किसी को पता है कि सी #/.NET के लिए इस व्यापक समस्या को दूर करने के लिए संकलन-समय प्रतिबिंब जोड़ने के लिए कभी भी फीचर विचार किया गया है?
ऐसा लगता है कि यह एक आसान जोड़ होगा, यह एक गैर-तोड़ने वाला बदलाव होगा, और इससे कई डेवलपर्स को बहुत फायदा होगा। टाइपऑफ() ऑपरेटर पहले से ही संकलन-समय प्रतिबिंब का एक रूप निष्पादित करता है, इसलिए ऐसा लगता है कि एक ऑपरेटर नाम() (या कुछ समान) बहुत ही मानार्थ होगा।
इसके अलावा, क्या किसी को इस तरह की सुविधा के साथ किसी भी संभावित मुद्दे के बारे में पता है?
सहायता के लिए धन्यवाद।
संभावित डुप्लिकेट [संपत्ति निर्दिष्ट करने के लिए "जादू स्ट्रिंग" का उपयोग करने से बचने के लिए लैम्ब्डा अभिव्यक्ति का उपयोग करना] (http://stackoverflow.com/questions/3330758/using-a-lambda-expression-to-avoid-using -ए-जादू-स्ट्रिंग-टू-निर्दिष्ट-ए-प्रॉपर्टी) –
यह भी देखें: [एक स्ट्रिंग के रूप में, एक अभिव्यक्ति से संपत्ति प्राप्त करें>] (http://stackoverflow.com/questions/2789504/get-the-property-as-a-string-from-an-expressionfunctmodel-tproperty) –
@ किर्कवॉल यह उस प्रश्न का डुप्लिकेट नहीं है। प्रश्न का दूसरा अनुच्छेद इंगित करता है कि एमजीएसएम अभिव्यक्ति वृक्ष तकनीक से परिचित है; सवाल यह है कि क्या कामों में एक नई सुविधा हो सकती है जो समस्या के नए समाधान की अनुमति देगी। – phoog