Skip to Content
C# Cookbook
book

C# Cookbook

by Stephen Teilhet, Jay Hilyard
January 2004
Beginner to intermediate
864 pages
22h 18m
English
O'Reilly Media, Inc.
Content preview from C# Cookbook

12.4. Finding Members in an Assembly

Problem

You need to find one or more members in an assembly with a specific name or containing part of a name. This partial name could be, for example, any member starting with the letter 'A' or the string "Test“.

Solution

Use the Type.GetMember method, which returns all members that match a specified criteria:

public static void FindMemberInAssembly(string asmPath, string memberName)
{
    Assembly asm = Assembly.LoadFrom(asmPath);
    foreach(Type asmType in asm.GetTypes( ))
    {
        // check for static ones first
        MemberInfo[] members = asmType.GetMember(memberName, MemberTypes.All, 
            BindingFlags.Public | BindingFlags.NonPublic |
            BindingFlags.Static);

        if(members.Length == 0)
        {
            // check for instance members as well
            members = asmType.GetMember(memberName, MemberTypes.All, 
                BindingFlags.Public | BindingFlags.NonPublic |
                BindingFlags.Instance);
        }

        foreach (MemberInfo member in members)
        {
            Console.WriteLine("Found " + member.MemberType + ":  " + 
                member.ToString( ) + " IN " + 
                member.DeclaringType.FullName);
        }
    }
}

The memberName argument can contain the wildcard character * to indicate any character or characters. So to find all methods starting with the string “Test”, pass the string "Test*" to the memberName parameter. Note that the memberName argument is case-sensitive, but the asmPath argument is not. If you’d like to do a case-insensitive search for members, add the BindingFlags.IgnoreCase flag to the other BindingFlags in the call to Type.GetMember.

Discussion

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C# Cookbook

C# Cookbook

Joe Mayo
C# Cookbook, 2nd Edition

C# Cookbook, 2nd Edition

Jay Hilyard, Stephen Teilhet
ASP.NET Cookbook

ASP.NET Cookbook

Michael A Kittel, Geoffrey T. LeBlond

Publisher Resources

ISBN: 0596003390Supplemental ContentCatalog PageErrata