.net - परावर्तक के लिए खुला स्रोत विकल्प?




reflection open-source (7)

2 विकल्प मुझे पता है।

ये आपको सी # हालांकि नहीं देंगे।

बस पूछने के लिए कि क्या कोई RedGate के Reflector ओपन सोर्स विकल्प के बारे में जानता है? मुझे यह देखने में दिलचस्पी है कि प्रतिबिंबक के समान उपकरण वास्तव में कैसे काम करता है।

नोट, यदि आप प्रतिबिंबक के लिए एक मुक्त लेकिन मुक्त स्रोत विकल्प नहीं जानते हैं, तो आप निम्न संबंधित प्रश्न का उत्तर दे सकते हैं:

सारांश - 11 मई 2011 को अपडेट किया गया

सुझाव दिया गया है कि विभिन्न खुली स्रोत परियोजनाओं और उपकरणों का एक त्वरित दौर:

  1. कॉमन कंपाइलर इंफ्रास्ट्रक्चर (सीसीआई)
  2. मोनो सेसिल
  3. ILSpy
  4. dnSpy ( dnSpy कांटा, परियोजना मूल से अधिक सक्रिय दिखाई देता है)
  5. डॉटनेट आईएल संपादक (डीआईएलई)
  6. IL.View
  7. Monoflector ( अब अप्रैल 2011 के रूप में सक्रिय नहीं )

निम्नलिखित संसाधन भी ब्याज के हो सकते हैं:

  • TypeView.cs
  • .NET को अलग करने पर जेसन हैली के नोट्स
  • एड्रियन बैंक के हालिया ब्लॉग पोस्ट में कई प्रतिबिंबित विकल्पों का सारांश दिया गया है, जिनमें नीचे उल्लिखित कई विकल्प शामिल हैं।
  • रिफ्लेक्टर को ओपन सोर्स विकल्प (डीआईएलई, आईएलएसपीआई और मोनो सेसिल का उपयोग करके) के कई मार्क मार्क लिंचनबर्ग की विस्तृत ब्लॉग पोस्ट की तुलना करें।

असल में, मुझे पूरा यकीन है कि रिफ्लेक्टर को कुछ डीकंपलर कार्यक्षमता के साथ एक डिस्सेबलर माना जाता है। Disassembler क्योंकि यह एक असेंबली की फाइल से बाइट्स पढ़ता है और इसे एक असेंबली भाषा (इस मामले में ILasm) में परिवर्तित करता है। डीकंपलर कार्यक्षमता आईएल को अच्छी तरह से ज्ञात पैटर्न (जैसे अभिव्यक्तियों और बयानों) में पार्स करके प्रदान करती है, जिसे बाद में उच्च स्तर की भाषाओं जैसे सी #, वीबी.Net आदि में अनुवाद किया जाता है। परावर्तक के लिए एडिन एपीआई आपको अपनी भाषा अनुवादक लिखने की अनुमति देता है आप चाहते हैं ... हालांकि जादू के अभिव्यक्ति पेड़ों में आईएल को कैसे पार करता है इसका जादू एक करीबी संरक्षित रहस्य है।

अगर आप समझना चाहते हैं कि आईएल डिस्सेबलर्स कैसे काम करते हैं, तो मैं उपरोक्त वर्णित तीनों में से किसी एक को देखने की सलाह दूंगा: इस सामग्री के लिए डाइल, सीसीआई और मोनो सभी अच्छे स्रोत हैं।

मैं भी एक्मा 335 spec और सर्ज लिडिन की किताब भी प्राप्त करने की अत्यधिक अनुशंसा करता हूं।


खैर, परावर्तक स्वयं एक .NET असेंबली है ताकि आप रिफ्लेक्टर में Reflector.exe को खोल सकें ताकि यह पता चल सके कि यह कैसे बनाया गया है।


मुख्य कारण मैंने प्रतिबिंबक का उपयोग किया (और, मुझे लगता है कि ज्यादातर लोगों ने इसका उपयोग करने का मुख्य कारण) अपने डीकंपलर के लिए था: यह एक विधि के आईएल को स्रोत कोड में वापस अनुवाद कर सकता है।

उस गिनती पर, Monoflector देखने की परियोजना होगी। यह सेसिल का उपयोग करता है, जो प्रतिबिंब करता है, और सेसिल। डीकंपेलर, जो विघटन करता है। लेकिन मोनोफ्लेक्टर दोनों पुस्तकालयों के शीर्ष पर यूआई रखता है, जो आपको एपीआई का उपयोग करने का एक अच्छा विचार देना चाहिए।

Monoflector भी परावर्तक के लिए एक सभ्य विकल्प है। यह आपको प्रकारों को ब्राउज़ करने और विधियों को कम करने देता है, जो कि 99% लोगों ने प्रतिबिंबित करने के लिए उपयोग किया है। यह किनारों के चारों ओर बहुत मोटा है, लेकिन मुझे लगता है कि जल्दी बदल जाएगा।


ILSpy महान काम करता है!

जहां तक ​​मैं यह कह सकता हूं कि प्रतिबिंबित करने वाली हर चीज करता है और वही दिखता है।


JustDecompile ने आज अपने स्वयं के अपघटन उपकरण, JustDecompile का बीटा जारी किया। बंद स्रोत, लेकिन मुफ़्त और आशाजनक लग रहा है।


13 दिसंबर 2011 को अपडेट किया गया

निम्नलिखित ओपन सोर्स टूल्स उपलब्ध हैं:

  • SharpDevelop टीम से ILSpy । उपकरण को हाइलाइट करने वाले स्कॉट हंसेलमैन के ट्वीट के लिए धन्यवाद।
  • डॉटनेट आईएल संपादक (एक डिस्सेबलर)
  • IL.View - एक .NET रिफ्लेक्टर विकल्प सिल्वरलाइट 4 में एक आउट-ऑफ-ब्राउज़र सिल्वरलाइट एप्लिकेशन के रूप में लिखा गया है। विवरण के लिए इस blog पोस्ट को देखें।




reflector