通過字符串執行方法,在可能會調用不同方法時對不同方法進行調用
以下為實例:
1 public class ABC 2 { 3 string str = "通過反射執行的方法"; 4 //Class:要反射的Method所在類名 5 Type type = typeof(Class); 6 //funcName:進行反射的方法名稱,第二個參數指定方法的搜索范圍,當前為搜索private的方法,沒有第二個參數則為public的方法 7 MethodInfo mt = type.GetMethod("funcName",BindingFlags.NonPublic | BindingFlags.Instance); 8 object instance = Activator.CreateInstance(t); 9 //執行到反射成功的方法上 10 mt.Invoke(instance,new object[]{ paramster }); 11 12 //被反射執行到的方法 13 void funcName(object paramster) 14 { 15 //如果想要使用ABC類中的變量則需要在調用Invoke()時第一個參數置為ABC的實例而非instance 16 //實例:this 17 string a = str; 18 } 19 } 20 21 public class CBA 22 { 23 string str = "通過反射執行的方法"; 24 //被反射執行到的方法 25 public void funcName(object paramster) 26 { 27 //如果想要使用ABC類中的變量則需要在調用Invoke()時第一個參數置為ABC的實例而非instance 28 //實例:new CBA() 29 string a = str; 30 } 31 }
文檔:Type.note
結合線程使用: 鏈接:http://note.youdao.com/noteshare?id=baaca71b2653e8eb6a69b4ac67af9bce