反射 Reflection 中访问方法
新建一个ClassLibrary类库:
public class Student
{
public string Name
{ get; set; }
public string School
{ get; set; }public int Sum(int a, int b)
{
return a + b;
}
public string GetName()
{
return "this is book" ;
}
}
/// <summary>
/// 反射
/// </summary>
class Program
{static void Main(string[] args)
{Assembly assembly = Assembly.Load("ClassLibrary");
//调用 程序集 类的方法
//创建该对象的实例,object类型,参数(名称空间+类)
object instances = assembly.CreateInstance("ClassLibrary.Student");//无参数 返回
object value = type.GetMethod("GetName").Invoke(instances, null);
//返回this is book
//有参
object[] params_obj = new object[2];
params_obj[0] = 12;
params_obj[1] = 23;
object value1 = type.GetMethod("Sum").Invoke(instances, params_obj);
//返回a b和
}
还可以通过 FindInterfaces 方法返回 接口信息
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
.net Reflection(反射)- 二