反射理解

 Assembly asm = Assembly.Load("ApiFun");//加载程序集
            Type[] typeInfo = asm.GetTypes();//获取程序集类型数组
            foreach (Type types in typeInfo)
            {
                Console.WriteLine("程序集中类型:{0}", types.Name);
                MethodInfo[] mInfo = types.GetMethods();
                foreach (MethodInfo information in mInfo)
                {
                    Console.WriteLine("此类型所有的方法:{0}", information.Name);
                }
                Console.WriteLine("\n");
            }
            Console.WriteLine("\n\n");
            Console.WriteLine("开始!");

            Type inType = typeof(ThreadTest);
            object obj = Activator.CreateInstance(inType);
            string[] s = { "mlg" };//方法的参数
            object objName = Activator.CreateInstance(inType, s);//创建指定类型的实例

            MethodInfo methodInfo = inType.GetMethod("ThreadMethod");//根据字符串来获取方法信息
            // methodInfo.Invoke(obj, null);
            methodInfo.Invoke(objName, null);//调用类型中的方法
            Console.ReadLine();

posted on 2012-10-18 10:26  疯狂的石头陈  阅读(123)  评论(0编辑  收藏  举报

导航