c#反射


namespace
_20190710 { class Class1 { static Object obj; static Dictionary<string, MethodInfo> dic = new Dictionary<string, MethodInfo>(); public static void addEventListener(string className, string priex = "do") { //string classname = "_20190710.A"; //根据字符串类名,获取该类的类型 Type t = Type.GetType(className); //创建对象 obj = Activator.CreateInstance(t); //获得所有方法,返回一个方法数组 //或者返回单个方法MethodInfo m = t.GetMethod(str); MethodInfo[] m = t.GetMethods(); //取出所有指定开头的方法 for (int i = 0; i < m.Length; i++) { MethodInfo mth = m[i]; if (mth.Name.StartsWith(priex)) { dic.Add(mth.Name, mth); Console.WriteLine(mth.Name); } } } public static void dispatchEvent(string methodName) { if (dic.ContainsKey(methodName)) { MethodInfo method = dic[methodName]; method.Invoke(obj, null); } } }

 

posted @ 2019-07-10 19:49  烧仙草奶茶hq  阅读(81)  评论(0编辑  收藏  举报