注册 登录
编程论坛 C# 论坛

通过反射调用泛型的问题

willstier 发布于 2016-09-06 18:10, 2243 次点击
最近被搞死了。为了性能和时间,我没有用反射来做,但是始终觉得不爽。想问下。问题在注释中
程序代码:

     class A
    {

    }
    class B
    {

    }
    class ABLL
    {
        public static int Method(List<A> alist)
        {
            return 0;
        }
    }
    class BBLL
    {
        public static int Method(List<B> blist)
        {
            return 0;
        }
    }

    class Program
    {

        static void Main(string[] args)
        {
            #region 其他地方产生如下代码:
            List<A> aList = new List<A>();
            //序列化为json字符串
            string strAList = JsonConvert.SerializeObject(aList);
            string strObject = "A";
            #endregion

            #region 本地代码
            // 通过字符串 strObject,得知传递过来的数据对象为A,
            
//问题是每次都不同,也可能是B,也可能是C。。。所以需要使用反射直接寻找对应的类
            
//假设是A。则执行如下代码:
            List<A> localAList = JsonConvert.DeserializeObject<List<A>>(strAList);
            ABLL.Method(localAList);//执行A对应的方法

            
//这里的localAlist就是我需要的。现在的困难是JsonConvert的参数也是泛型,
            
//而且是一个List。就不知道怎么弄了。
            
//请指点
            #endregion

            Console.ReadKey();
        }
    }


[此贴子已经被作者于2016-9-6 18:16编辑过]

3 回复
#2
向洪林2016-09-07 09:25
其实反射是一个很麻烦死的东西,要是不是一个很大的项目不一定用反射来做,运用反射会影响代码的运行速率
#3
willstier2016-09-09 18:22
回复 2楼 向洪林
是的,但是从开发效率来说,尤其有用,否则几十个表,几十个相同操作,烦死了。
#4
yhlvht2016-09-09 20:25
把你的 #本地代码 里面的内容写到A类和B类里面,反射以后直接调用对应的方法就可以处理了
1