Nev*_*iah 12 .net c# reflection public-method
我有*.dll用C#编写,我需要得到*.dll中包含的所有公共方法或类的列表.有没有办法用C#以编程方式进行?
The*_*ing 16
是使用Assembly.GetTypes提取所有类型,然后对每种类型使用反射来迭代公共方法.
Assembly a = Assembly.LoadWithPartialName("...");
Type[] types = a.GetTypes();
foreach (Type type in types)
{
if (!type.IsPublic)
{
continue;
}
MemberInfo[] members = type.GetMembers(BindingFlags.Public
|BindingFlags.Instance
|BindingFlags.InvokeMethod);
foreach (MemberInfo member in members)
{
Console.WriteLine(type.Name+"."+member.Name);
}
}
Run Code Online (Sandbox Code Playgroud)
var assembly = // grab assembly
var types = assembly.GetExportedTypes();
foreach (var type in types) {
var methods = type.GetMethods(BindingFlags.Public);
}
Run Code Online (Sandbox Code Playgroud)
GetExportedTypes将返回程序集中的所有公共类型。您也没有指定只需要实例方法,静态方法还是两者都指定。
使用 System.Net.Reflection。反射类允许您在运行时查询 DLL 类型的元数据。
就像是this.GetType().Assembly.GetTypes();
归档时间: |
|
查看次数: |
11509 次 |
最近记录: |