Girish Kalamati Ответов: 1

Как получить количество классов и методов, содержащихся в библиотеке DLL ?


how to get the count of classes and methods contained in a DLL


Я знаю, что ildasm.exe инструмент покажет мне, но в сценариях,где мне нужно вручную проверить 2 dll, имеющих количество пространств имен, классов,методов и т. д.

Пожалуйста, предложите наилучший подход, который может дать мне счет ?

Что я уже пробовал:

Я пытался illdasm.exe инструмент от Microsoft, пробуя там будет далеко взаимодействовать через командную строку и отсчет от нее

1 Ответов

Рейтинг:
0

phil.o

ildasm.exe позволяет отображать .Содержание объем модуля, но насколько мне известно, нет статистических функций, встроенных в него.

К счастью, вы можете использовать объекты в Система.Пространство Имен Отражения[^] чтобы построить свою собственную программу для этого. Вы можете найти здесь, на CP, "отражение" и получить множество примеров его использования.


Girish Kalamati

Я написал код для этого, но это не удается, даже если у вас нет всех зависимых библиотек DLL в одном месте.

Подсказка: сохранить все dll для более крупного продукта не так-то просто

Код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

// Use reflection
using System.Reflection;


namespace Difference_Between_DLLs
{
    class Program
    {
        static void Main(string[] args)
        {
            int count_Entities=0;
            //Assembly assembly = Assembly.ReflectionOnlyLoadFrom(@"E:\~~~~~\your.DLL");
            Console.WriteLine("DLL Name: {0}",assembly.ManifestModule.Name);            
            Console.WriteLine("---------   Displaying the names of the Entities (Interfaces, Delegates, Classes, Enums/Properties etc.)   ------------");            
            foreach (var ti in assembly.ExportedTypes.ToArray())
            {                              
                Console.WriteLine(ti);
                count_Entities += 1;
            }
            Console.WriteLine("\n");
            Console.WriteLine("Total number of entities found : {0}", count_Entities);            
            Console.WriteLine("Press any button to close !");
            Console.ReadLine();
        }
    }
}

Girish Kalamati

Спасибо @phil.o , могу ли я достичь этого с помощью инструмента ILSPY ?