C#实现实体类与字符串互相转换的方法

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


namespace stringConvertClass
{
    class TestCase
    {
        public string toString()
        {
            return "TestCase !";
        }
    }
    class test
    {
        //public void Method()
        //{
        //    Console.WriteLine("调用成功!");
        //}
        public void Method(TestCase testcase)
        {
            Console.WriteLine(testcase.toString());
        }
    }




    class Program
    {
        //C#反射调用 异常信息:Ambiguous match found.
        //出现原因:由于被调用的dll里面有多个重载的函数,因此提示。
        //解决方法: 反射调用不能调用重载的函数,只能调用唯一的函数。
        public static void run(TestCase testcase)
        {
            string strClass = "stringConvertClass.test";  //命名空间+类名
            string strMethod = "Method";//方法名
            Type t;
            object obj;
            try
            {
                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)"
            }catch(Exception Ex)
            {
                string Err = Ex.ToString();
                Err = Err;
            }
            
        }


        static void Main(string[] args)
        {
            TestCase testcase = new TestCase();//自己定义的类
            run(testcase);


            Console.ReadKey();
        }
    }






}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值