我有通过visual studio生成的。exe文件。现在,以相反的方式,我需要从.exe文件中获取类信息(名称空间和类名)和方法信息(访问修饰符,返回类型和输入参数)。
实际上我可以从dll文件中得到这些信息,但不知道从可执行文件。
谁能给我一个简单的代码演示?提前感谢!!下载ILSPY软件
step 1 => Unzip the Folder.
step 2 => now you should be able to seen ilspy application open that file.
step 3 => after open ilspy application you should go into => FILE Menu => Open.
step 4 => Browse your .exe file and open you should be able to seen whole code.
Thank you.
实际上我可以从dll文件中得到这些信息,但不知道从可执行文件。
dll和exe文件没有区别。它们都是。net程序集。只需使用与dll相同的代码/方法即可。
您需要使用Assembly.LoadFile
从EXE或DLL文件中加载Assembly
:
var assembly = Assembly.LoadFile("C:path_to_your_exeYourExe.exe");
foreach (var type in assembly.GetTypes())
{
Console.WriteLine($"Class {type.Name}:");
Console.WriteLine($" Namespace: {type.Namespace}");
Console.WriteLine($" Full name: {type.FullName}");
Console.WriteLine($" Methods:");
foreach (var methodInfo in type.GetMethods(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
{
Console.WriteLine($" Method {methodInfo.Name}");
if (methodInfo.IsPublic)
Console.WriteLine($" Public");
if (methodInfo.IsFamily)
Console.WriteLine($" Protected");
if (methodInfo.IsAssembly)
Console.WriteLine($" Internal");
if (methodInfo.IsPrivate)
Console.WriteLine($" Private");
Console.WriteLine($" ReturnType {methodInfo.ReturnType}");
Console.WriteLine($" Arguments {string.Join(", ", methodInfo.GetParameters().Select(x => x.ParameterType))}");
}
}