| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2070 人关注过本帖
标题:通过反射调用泛型的问题
只看楼主 加入收藏
willstier
Rank: 2
等 级:论坛游民
帖 子:40
专家分:60
注 册:2009-8-5
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:3 
通过反射调用泛型的问题
最近被搞死了。为了性能和时间,我没有用反射来做,但是始终觉得不爽。想问下。问题在注释中
程序代码:
     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编辑过]

2016-09-06 18:10
向洪林
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:重庆市奉节县
等 级:版主
威 望:9
帖 子:118
专家分:405
注 册:2015-3-10
收藏
得分:10 
其实反射是一个很麻烦死的东西,要是不是一个很大的项目不一定用反射来做,运用反射会影响代码的运行速率

新手上路,望大家多多照顾,谢谢!
2016-09-07 09:25
willstier
Rank: 2
等 级:论坛游民
帖 子:40
专家分:60
注 册:2009-8-5
收藏
得分:0 
回复 2楼 向洪林
是的,但是从开发效率来说,尤其有用,否则几十个表,几十个相同操作,烦死了。

帮助别人就是帮助自己,回答错误,也是发现自己的错误。
2016-09-09 18:22
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:10 
把你的 #本地代码 里面的内容写到A类和B类里面,反射以后直接调用对应的方法就可以处理了
2016-09-09 20:25
快速回复:通过反射调用泛型的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023384 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved