Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
153 views
in Technique[技术] by (71.8m points)

c# - How to retrieve all public methods from *.dll

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#?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...