private void btnFindMethod(string pClassName,string pMethodName)
{
Assembly proj = Assembly.GetExecutingAssembly();//得到当前运行的project程序集
Type tp = proj.GetType(pClassName);//按名稱find指定的类
if (tp == null)
return;
var objInstance = tp.Assembly.CreateInstance(pClassName); //new a instance,如果是調用靜態類,可以不用新建一個實例,本步可以省略
tp.GetRuntimeMethods().Where (o=>o.Name == pMethodName).ToList ().ForEach (o=> { // 注:本例是 獲取winform的方法,如果是單純類,用 GetMethods()就可以
o.Invoke(objInstance , new object[] { "p1","p2"}); //找到并執行對應的方法.注意參數的數量類型要對應. 如果調用的是靜態類,則invoke的第一個參數為null
});
}
private void TestMethod(string content,string content1)
{
MessageBox.Show(content + content1);
}
c#利用反射按名稱找到類的方法并執行
最新推荐文章于 2022-08-22 17:14:25 发布