using System; using System.Reflection; class MainClass { public static void Main(string[] args) { ShowClasses(args[0]); } public static void ShowMethods(Type t) { MethodInfo[] methods = t.GetMethods(); foreach (MethodInfo m in methods) { Console.WriteLine("\nMethod Name: {0}", m.Name); Console.WriteLine("Return Type: {0}", m.ReturnType); } } public static void ShowProperties(Type t) { PropertyInfo[] props = t.GetProperties(); foreach (PropertyInfo p in props) { Console.WriteLine("\nProperty Name: {0}", p.Name); Console.WriteLine("Type: {0}", p.MemberType); } } public static void ShowClasses(string name) { Assembly assembly = Assembly.LoadFrom(name); if (assembly != null) { Type[] typeArray = assembly.GetTypes(); Console.WriteLine("Assembly Name: {0}", name); foreach (Type type in typeArray) { if (type.IsClass) { Console.WriteLine("Class: {0}", type.FullName); ShowMethods(type); ShowProperties(type); } } } } }