blob: a6ff695bb936792162fa4390dae541d593162def [file]
using System;
using System.IO;
using System.Reflection;
public class Reflect
{
public static void GetAllClassesAndMethodsOfAssembly(string name)
{
Assembly assem1 = Assembly.LoadFrom(name);
//Another Way
//Assembly assem2 = Assembly.Load(name);
//Get List of Class Name
Console.WriteLine("Assembly FullName : " + assem1.FullName);
Console.WriteLine("Assembly EntryPoint : " + assem1.EntryPoint);
Type[] types = assem1.GetTypes();
foreach (Type tc in types)
{
if (tc.IsAbstract)
{
Console.WriteLine("Abstract Class : " + tc.Name);
}
else if (tc.IsPublic)
{
Console.WriteLine("Public Class : " + tc.Name);
}
else if (tc.IsSealed)
{
Console.WriteLine("Sealed Class : " + tc.Name);
}
Console.WriteLine("Type.Namespace : " + tc.Namespace);
Console.WriteLine("Type.FullName : " + tc.FullName);
Console.WriteLine("Type.AssemblyQualifiedName : " + tc.AssemblyQualifiedName);
//Get List of Method Names of Class
MemberInfo[] methodName = tc.GetMethods();
foreach (MemberInfo method in methodName)
{
if (method.ReflectedType.IsPublic)
{
Console.WriteLine("Public Method : " + method.Name.ToString());
}
else
{
Console.WriteLine("Non-Public Method : " + method.Name.ToString());
}
}
}
}
static void Main(string[] args)
{
Console.WriteLine("Input File: " + args[0]);
var filename = args[0];
Console.WriteLine(File.Exists(filename) ? "File exists." : "File does not exist.");
GetAllClassesAndMethodsOfAssembly(filename);
}
}