C#反射实例调用

System.Reflection.Assembly ass;

Type type ;

object obj;

try

 

{

ass = System.Reflection.Assembly.LoadFile(@"D:/huangkai/programe/TestReflect/TestReflect/bin/Debug/TestReflect.dll");

type = ass.GetType("Webtest.ReflectTest");//必须使用名称空间+类名称

 

System.Reflection.MethodInfo method = type.GetMethod("WriteString");//方法的名称

obj = ass.CreateInstance("Webtest.ReflectTest");//必须使用名称空间+类名称

string s = (string)method.Invoke(obj,new string[]{"hk"}); //实例方法的调用

MessageBox.Show("WriteString:" + s);

 

method = type.GetMethod("WriteName");//方法的名称

s = (string)method.Invoke(null,new string[]{"hk"}); //静态方法的调用

MessageBox.Show("WriteName:" + s);

 

method = type.GetMethod("WriteNoPara");//无参数的实例方法

s = (string)method.Invoke(obj,null);

MessageBox.Show("WriteNoPara:" + s);

method = null;

}

 

catch(Exception ex)

 

{

MessageBox.Show(ex.Message);

}

 

finally

 

{

ass = null;

type = null;

obj = null;

}

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值