ऐसा करने का सबसे आसान तरीका शायद टीसीके के सुझाव के रूप में DLINQ है।
सबसे तेज़ (मुझे विश्वास है, 3.5 में) DynamicMethod बनाना है। यह भी सबसे डरावनी विधि है। आप अनिवार्य रूप से आईएल का उपयोग कर एक विधि बना रहे हैं, जो मशीन भाषा में कोड लिखने के समान महसूस करता है।
मैं यह करने के गतिशील रूप से कुछ बात या किसी अन्य रूप में ईवेंट हैंडलर्स संलग्न करने के लिए की जरूरत है (अच्छी तरह से, मैं यह सब करने की ज़रूरत नहीं किया था, मैं सिर्फ इकाई परीक्षण घटनाओं आसान बनाना चाहते थे)। उस समय मुझे थोड़ा मुश्किल लग रहा था क्योंकि मुझे आईएल के बारे में बकवास नहीं पता था, लेकिन मुझे इसे पूरा करने का एक आसान तरीका पता चला।
तुम क्या करता है कि आप क्या चाहते हैं एक विधि पैदा करते हैं। बेहतर कॉम्पैक्ट बेहतर है। मैं एक उदाहरण प्रदान करूंगा यदि मैं यह समझ सकूं कि आप क्या करने की कोशिश कर रहे हैं। आप इस विधि को एक डीएलएल प्रोजेक्ट के भीतर कक्षा में लिखते हैं और इसे रिलीज़ मोड में संकलित करते हैं। फिर आप प्रतिबिंब में डीएलएल खोलते हैं और अपनी विधि को अलग करते हैं। परावर्तक आपको उस भाषा का विकल्प देता है जिसे आप अलग करना चाहते हैं - आईएल का चयन करें। अब आपके पास अपनी गतिशील विधि में जोड़ने के लिए आवश्यक सटीक कॉल हैं। एमएसडीएन पर बस उदाहरण का पालन करें, उदाहरण के आईएल को अपने परावर्तित तरीकों के कोड के लिए स्विच करें।
गतिशील तरीकों, एक बार का निर्माण किया, संकलित तरीके के रूप में लगभग उसी गति पर आह्वान (एक परीक्षण जहां गतिशील तरीकों ~ 20ms में कहा जा सकता है जहां प्रतिबिंब 200 मि.से पदभार संभाल लिया देखा था)।
क्या आप हमें बता सकते हैं कि आपका वास्तविक उपयोग केस क्या है? हो सकता है कि आपकी आवश्यकता को पूरा करने का कोई और तरीका हो। – SolutionYogi
अगर मैं इसे सही ढंग से पढ़ रहा हूं, तो आप एक स्ट्रिंग को eval() करना चाहते हैं? http://en.wikipedia.org/wiki/Eval – Stobor