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


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);
        }
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值