मेरे पास C # असेंबली है, लेकिन मेरे पास इसकी निर्भरता विधानसभाएं नहीं हैं।

क्या इसकी निर्भरता विधानसभा के बिना। नेट असेंबली के GetTypes () का कोई रास्ता है।

 Assembly SampleAssembly;
 SampleAssembly = Assembly.LoadFrom(@"AnyExternal.dll");
 var mytypes = SampleAssembly.GetExportedTypes();

मेरे पास कोई भी बाहरी है। लेकिन मेरे पास इसकी निर्भरता नहीं है।

क्या यह संभव है।

2
D J 18 नवम्बर 2015, 14:18

2 जवाब

सबसे बढ़िया उत्तर

मुझे लगता है कि यही मैं ढूंढ रहा था।

http://www.codeproject.com/Articles/3262/A-NET-assembly-viewer

यह दर्शक किसी भी तीसरे पक्ष का उपयोग नहीं करता है और असेंबली इन्फोर को निकाल सकता है।

0
D J 19 नवम्बर 2015, 02:15

चूँकि आप बस टाइप करना चाहते हैं "> Mono.Cecil आपकी मदद कर सकता है:

var types = AssemblyDefinition
    .ReadAssembly("YourAssembly.dll")
    .MainModule
    .Types
    .Where(_ => _.IsPublic);

ध्यान दें, कि Where(_ => _.IsPublic) सख्त Assembly.GetExportedTypes के समतुल्य नहीं है, क्योंकि पिछले एक भी नेस्टेड सार्वजनिक प्रकार लौटता है।

अपने प्रोजेक्ट में Mono.Cecil जोड़ने के लिए, निष्पादित करें:

Install-Package Mono.Cecil

पैकेज मैनेजर कंसोल से।

3
Dennis 18 नवम्बर 2015, 12:08