using System;
using System.Collections;
using System.Reflection;
public class MainClass{
public static void Main() {
Assembly LoadedAsm = Assembly.LoadFrom("yourName");
Console.WriteLine(LoadedAsm.FullName);
Type[] LoadedTypes = LoadedAsm.GetTypes();
if (LoadedTypes.Length == 0) {
Console.WriteLine("\tNo Types!");
} else {
foreach (Type t in LoadedTypes) {
if (t.IsPublic && !t.IsEnum && !t.IsValueType) {
Console.WriteLine("Type: {0}", t.FullName);
PrintPropertyInfo(t);
}
}
}
}
private static void PrintPropertyInfo(Type t) {
PropertyInfo[] props = t.GetProperties
(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
foreach (PropertyInfo p in props) {
Console.WriteLine("Property: {0}", p.Name);
Console.WriteLine("\tType {0}", p.PropertyType.FullName);
if (p.CanRead)
Console.WriteLine("Readable property.");
if (p.CanWrite)
Console.WriteLine("Writable property.");
ParameterInfo[] pList = p.GetIndexParameters();
if (pList.Length == 0) {
Console.WriteLine("\tNo Parameters");
} else {
Console.WriteLine("\tParameter List:");
foreach (ParameterInfo parm in pList) {
Console.WriteLine("\t\t{0} {1}", parm.ParameterType.FullName,parm.Name);
}
}
}
}
}