将string转为同名类名,方法名。(c#反射)

来源:互联网 发布:java客服聊天代码 编辑:程序博客网 时间:2024/05/06 16:20


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace stringConvertClass
{
    class test
    {
        public void Method()
        {
            Console.WriteLine("调用成功!");
        }

        public void Method(testcase)

        {

             console.WriteLine(testcase.toString());

        }
    }
    class Program
    {
        public static void run(TestCase testcase)
        {

          string strClass = "stringConvertClass.test";  //命名空间+类名
          string strMethod = "Method";//方法名
          Type t; 
          object obj;

          t = Type.GetType(strClass);//通过string类型的strClass获得同名类“t”
          System.Reflection.MethodInfo method = t.GetMethod(strMethod);//通过string类型的strMethod获得同名的方法“method”
          obj = System.Activator.CreateInstance(t);//创建t类的实例 "obj"
          
              method.Invoke(obj,null);//t类实例obj,调用方法"method"

           //上面的方法是无参的,下面是有参的情况.

          object[] objs = new object[]{testcase};

          method.Invoke(obj,objs );//t类实例obj,调用方法"method(testcase)"

        }
        static void Main(string[] args)
        {

            TestCase testcase = new TestCase();//自己定义的类
            run(testcase);
        }
    }
}



0 0
原创粉丝点击