Reflection C# Tutorial

using System;
using System.Reflection;
using System.IO;
using System.Collections;
    class Class1
    {
        [STAThread]
        static int Main(string[] args)
        {
            ArrayList filterStrings = new ArrayList();
            filterStrings.Add("your value");
            Assembly asm = Assembly.LoadFile( "assembly file" );
            MemberFilter filter = new MemberFilter( OnCustomSearch );
            foreach( Module module in asm.GetModules() )
            {
                foreach( Type t in module.GetTypes() )
                {
                    if( filterStrings.Contains( t.Name ) )
                        Console.WriteLine( "Found type {0}", t.Name );
                    MemberInfo[] foundMembers = t.FindMembers( MemberTypes.All, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly,
                        filter, filterStrings );
                    foreach( MemberInfo member in foundMembers )
                    {
                        Console.WriteLine( "Found member {0} which is a {1} defined in {2}.", member.Name, member.MemberType, t.Name );
                    }
                }
            }
            return 0;
        }
        public static bool OnCustomSearch( MemberInfo member, object filter )
        {
            ArrayList al = (ArrayList) filter;
            if( al.Contains( member.Name ))
                return true;
            if( al.Contains( member.MemberType ))
                return true;
            return false;
        }
    }