How to retrieve all public methods from *.dll

后端 未结 3 1189
情书的邮戳
情书的邮戳 2020-12-14 20:57

I have *.dll written with C# and I need to get list of all public methods or classes contained in that *.dll. Is there some way to do it programmatically with C#?

3条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-14 21:40

    Yes use Assembly.GetTypes to extract all of the types, and then use reflection on each type to iterate the public methods.

    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);
        }
    }
    

提交回复
热议问题