using System;
using System.Reflection;
namespace ReflectTest
{
class Program
{
static void Main(string[] args)
{
Assembly assembly = Assembly.Load("Model"); // 1. 动态加载dll
Type userType = assembly.GetType("Model.User"); // 2. 找到具体类型
object instance = Activator.CreateInstance(userType); // 3. 给类型创建一个对象
// 解析dll
{
// 获取程序集中的所有类型
foreach (Type type in assembly.GetTypes())
{
Console.WriteLine(type.Name);
}
// 获取类型中所有方法
foreach (MethodInfo method in userType.GetMethods())
{
Console.WriteLine(method.Name);
}
}
MethodInfo showMethod = userType.GetMethod("Show"); // 4. 获取指定方法
var result = showMethod.Invoke(instance, null); // 5. 方法调用
Console.WriteLine(result);
Console.ReadLine();
}
}
}