नेट में, मैं सभी ऐपडोमेन पर सभी लोड असेंबली को गिनना चाहता हूं। मेरे प्रोग्राम के ऐपडोमेन के लिए ऐसा करना काफी आसान है AppDomain.CurrentDomain.GetAssemblies()
। क्या मुझे किसी भी तरह से ऐपडोमेन तक पहुंचने की ज़रूरत है? या क्या पहले से ही एक उपकरण है जो यह करता है?मैं सभी लोड असेंबली कैसे सूचीबद्ध करूं?
उत्तर
दृश्य स्टूडियो
- का उपयोग करने के लिए प्रक्रिया एक डिबगर संलग्न (जैसे डिबगिंग या डिबग के साथ शुरू की प्रक्रिया के लिए संलग्न>) (डीबग> विंडोज> मॉड्यूल)
- जबकि डीबगिंग, मॉड्यूल विंडो दिखाने
यह प्रत्येक असेंबली, ऐप डोमेन के बारे में विवरण देता है और प्रतीकों को लोड करने के लिए कुछ विकल्प हैं (यानि पीडीबी फाइल जिनमें डीबग जानकारी होती है)।
प्रोसेस एक्सप्लोरर
का उपयोग करके आप एक बाहरी उपकरण आप एक प्रक्रिया पर उपयोग कर सकते हैं Process Explorer (, फ्रीवेयर माइक्रोसॉफ्ट द्वारा प्रकाशित)
क्लिक करें चाहते हैं और यह एक सूची दिखाई देगी सभी विधानसभाओं के साथ इस्तेमाल किया। उपकरण बहुत अच्छी के रूप में यह इस तरह के फ़ाइल हैंडल आदि
प्रोग्राम
चेक this SO प्रश्न बताते हैं कि यह कैसे करना है के रूप में अन्य जानकारी से पता चलता है।
यह यहां समझाए जाने से भी बेहतर है, क्योंकि प्रक्रिया के लिए प्रॉपर्टी पेज में, प्रोसेस एक्सप्लोरर दिखाता है कि कौन सा ऐपडोमेन ('साझा डोमेन' समेत) असेंबली लोड हो जाती है। तो यह केवल उस से अधिक दिखाता है जो डीएलएस प्रक्रिया में लोड हो जाते हैं। यह जानना अच्छा होगा कि वे यह दिखाने के लिए किस एपीआई का उपयोग करते हैं (इसके बारे में 'प्रोग्रामेटिक' लिंक केवल CurrentDomain में असेंबली देगा)। – Govert
यहां मैं समाप्त हुआ हूं। यह सभी गुणों और विधियों की एक सूची है, और मैंने प्रत्येक विधि के लिए सभी पैरामीटर सूचीबद्ध किए हैं। मैं सभी मूल्यों को प्राप्त करने में सफल नहीं हुआ।
foreach(System.Reflection.AssemblyName an in System.Reflection.Assembly.GetExecutingAssembly().GetReferencedAssemblies()){
System.Reflection.Assembly asm = System.Reflection.Assembly.Load(an.ToString());
foreach(Type type in asm.GetTypes()){
//PROPERTIES
foreach (System.Reflection.PropertyInfo property in type.GetProperties()){
if (property.CanRead){
Response.Write("<br>" + an.ToString() + "." + type.ToString() + "." + property.Name);
}
}
//METHODS
var methods = type.GetMethods();
foreach (System.Reflection.MethodInfo method in methods){
Response.Write("<br><b>" + an.ToString() + "." + type.ToString() + "." + method.Name + "</b>");
foreach (System.Reflection.ParameterInfo param in method.GetParameters())
{
Response.Write("<br><i>Param=" + param.Name.ToString());
Response.Write("<br> Type=" + param.ParameterType.ToString());
Response.Write("<br> Position=" + param.Position.ToString());
Response.Write("<br> Optional=" + param.IsOptional.ToString() + "</i>");
}
}
}
}
btw ... मैं इसे आरंभिक पोस्ट से बाहर रखा गया है, लेकिन मैं इतना 'foreach तरह की प्रतिक्रियाएं के कुछ फ़िल्टर्ड (asm.GetTypes में टाइप करें प्रकार()) {\t \t \t \t \t \t अगर ((type.ToString() IndexOf ("ACLASSIMLOOKINGFOR")> = 0) || (type.ToString()। IndexOf ("BCLASSIMLOOKINGFOR")> = 0)) {... ' – s15199d
यह प्रश्न का उत्तर नहीं देता है। – Govert
GetExecutingAssembly() का उपयोग करने के बजाय, मैंने यह सुनिश्चित करने के लिए GetEntryAssembly() का उपयोग किया है कि मुझे अपने प्रोग्राम द्वारा उपयोग की जाने वाली असेंबली की बेहतर सूची मिल रही है। यदि एक्जिक्यूटिंग एस्क्रिप्बल्स डीएलएल होता है, तो मैं उनमें से कुछ को याद करने जा रहा हूं। –
- 1. मैं विम में लोड किए गए प्लगइन कैसे सूचीबद्ध करूं?
- 2. मैं emacs में सभी yanks कैसे सूचीबद्ध करूं?
- 3. मैं जीएसी में सभी पंजीकृत असेंबली कैसे सूचीबद्ध कर सकता हूं?
- 4. असेंबली का उपयोग किए बिना असेंबली कैसे लोड करें। लोड?
- 5. मैं ILMerged असेंबली में कैसे डिबग करूं?
- 6. मैं आईफोन पर इनलाइन असेंबली कैसे करूं?
- 7. सभी उपलब्ध .NET असेंबली
- 8. मैं सभी अंतराल को कैसे साफ़ करूं?
- 9. मैं कमांड लाइन से स्थापित एमएसआई कैसे सूचीबद्ध करूं?
- 10. मैं पाइथन में निर्देशिका में सभी टीजीए फाइलों को कैसे सूचीबद्ध करूं (गैर रिकर्सिव)?
- 11. मैं अजगर पीडीबी में किसी ऑब्जेक्ट के सभी गुणों को कैसे सूचीबद्ध करूं?
- 12. मैं जावा विधि/फ़ंक्शन के भीतर सभी स्थानीय चर कैसे सूचीबद्ध करूं?
- 13. मैं टी-एसक्यूएल का उपयोग कर SQL सर्वर में सभी तालिका नामों को कैसे सूचीबद्ध करूं?
- 14. मैं SQLite में किसी विशेष तालिका के सभी उपलब्ध दृश्यों को कैसे सूचीबद्ध करूं?
- 15. मैं Apache + SVN पर SVNParentPath निर्देश के साथ सभी रिपॉजिटरीज़ कैसे सूचीबद्ध करूं?
- 16. मैं ऑब्जेक्टिव-सी में ऑब्जेक्ट के सभी फ़ील्ड कैसे सूचीबद्ध करूं?
- 17. मैं ओरेकल डीबी में सभी संदर्भ नामस्थानों को कैसे सूचीबद्ध करूं?
- 18. मैं सी/सी ++ से .NET असेंबली कैसे कॉल करूं?
- 19. मैं एक्सएमएल में सभी नेमस्पेस कैसे सूचीबद्ध कर सकता हूं?
- 20. सी # असेंबली। लोड बनाम असेंबली। रिफ्लेक्शनऑनलीलोड
- 21. मैं सबवर्सन रिपोजिटरी की अनदेखी सेटिंग्स कैसे सूचीबद्ध करूं?
- 22. मैं पाइथन पीडीबी में वर्तमान लाइन कैसे सूचीबद्ध करूं?
- 23. मैं उचित स्थानीयकृत फ़ाइल कैसे लोड करूं?
- 24. सभी सत्र जानकारी सूचीबद्ध करें
- 25. सभी वर्ग गुणों को कैसे सूचीबद्ध करें
- 26. सी #: जीएसी से असेंबली कैसे लोड करें?
- 27. रनटाइम पर लोड असेंबली में मैं सामान्य लॉग 4नेट संदर्भ का उपयोग कैसे करूं?
- 28. मैं गतिशील रूप से असेंबली कैसे लोड करूं एएसपी में डिस्क पर नहीं। नेट वेब एप्लिकेशन?
- 29. मैं प्रति-असेंबली रेजरपर सेटिंग्स कैसे सेट करूं
- 30. सूचीबद्ध
ध्यान दें कि 'GetAssemblies() 'काम नहीं करेगा, क्योंकि यह रिकर्सिव नहीं है और यह किसी भी नेस्टेड असेंबली संदर्भों को याद करेगा। मैंने http://stackoverflow.com/questions/383686/how-do-you-loop-through-currently-loaded-assemblies/26300241#26300241 पर 'GetAssemblies()' का एक पुनरावर्ती संस्करण जोड़ा है। – Contango