1 using System;
2 using System.Reflection;
3
4 namespace ReflectTest
5 {
6 class Program
7 {
8 static void Main(string[] args)
9 {
10 Assembly assembly = Assembly.Load("Model"); // 1. 动态加载dll
11 Type userType = assembly.GetType("Model.User"); // 2. 找到具体类型
12 object instance = Activator.CreateInstance(userType); // 3. 给类型创建一个对象
13
14 // 解析dll
15 {
16 // 获取程序集中的所有类型
17 foreach (Type type in assembly.GetTypes())
18 {
19 Console.WriteLine(type.Name);
20 }
21
22 // 获取类型中所有方法
23 foreach (MethodInfo method in userType.GetMethods())
24 {
25 Console.WriteLine(method.Name);
26 }
27 }
28
29 MethodInfo showMethod = userType.GetMethod("Show"); // 4. 获取指定方法
30 var result = showMethod.Invoke(instance, null); // 5. 方法调用
31 Console.WriteLine(result);
32
33 Console.ReadLine();
34 }
35 }
36 }