首页 新闻 会员 周边

如何实例化未知类型的泛型类?

0
悬赏园豆:100 [已解决问题] 解决于 2012-06-21 14:45

定义了一个泛型类,某个属性的类型为泛型:

  [DataContract]
    public class M_ExportExcel<T>
    {
        [DataMember]
        public List<M_ExtjsColumn> ColumnModel { get; set; }

        [DataMember]
        public String FileName { get; set; }

        [DataMember]
        public String Title { get; set; }

        [DataMember]
        public String ModelName { get; set; }


        [DataMember]
        public T RuntimeModel { get; set; }

        
    }

 

T 是在运行时通过反射才能知道是什么类型, 例如:

Assembly assemblyMd = Assembly.Load("Models");
Type typeRun = assemblyMd.GetType("Models.M_Charge");

 

我要怎么实例化?

M_ExportExcel<T> objM_ExportExcel = new M_ExportExcel<T>();
十分师傅的主页 十分师傅 | 初学一级 | 园豆:73
提问于:2012-06-21 12:21
< >
分享
最佳答案
0
var instance = Activator.CreateInstance(typeof(M_ExportExcel<>).MakeGenericType(typeRun));

注意你获得的instance是一个object。

收获园豆:100
水牛刀刀 | 大侠五级 |园豆:6350 | 2012-06-21 13:21

竟然是水牛刀刀。受宠若惊啊。。。再追问一个,读取属性要怎么写。 我这么写运行时异常了:

instanceM_ExportExcel.GetType().GetProperty("RuntimeModel").GetValue(saa,null);

十分师傅 | 园豆:73 (初学一级) | 2012-06-21 14:26

@十分师傅:  参数写错了。解决了。哈哈。 谢谢水牛刀刀! 100分全给你了。

十分师傅 | 园豆:73 (初学一级) | 2012-06-21 14:44

@十分师傅: 刚看到,还好你自己解决了,nice!

水牛刀刀 | 园豆:6350 (大侠五级) | 2012-06-21 15:19
其他回答(1)
0

100分啊!水牛就这样干掉了?

无之无 | 园豆:5095 (大侠五级) | 2012-06-21 13:43

啊?难道不对?

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2012-06-21 13:44

@水牛刀刀: 对!只是我来晚了!冲级……READY……没的fire了。

支持(0) 反对(0) 无之无 | 园豆:5095 (大侠五级) | 2012-06-21 14:09

@笨笨蜗牛: 第一次提问题,不知道要下多少分。 就随便下了100。看问题列表的时候,才发现,原来别人提的都是10分20分。 - - ! 这下要亏大了。 

支持(0) 反对(0) 十分师傅 | 园豆:73 (初学一级) | 2012-06-21 14:29

@十分师傅: 哈哈,不是亏大了。。。这个分也没什么,只是玩玩而已。

另外,有时,分数多,说明这个问题的重视程度、难度,也说明提问人对答问人的尊重程度。

分用光了,再提问就没有分了,只能自己慢慢赚咯(参考:问答园豆增减规则?http://q.cnblogs.com/q/faq#hy)。

其实,没有分,大家也乐于回答。这里的分不过是一个闲暇之余的一个乐趣。

支持(0) 反对(0) 无之无 | 园豆:5095 (大侠五级) | 2012-06-21 14:44

@笨笨蜗牛: 恩。两位大牛。 受教了。嘿嘿。

支持(0) 反对(0) 十分师傅 | 园豆:73 (初学一级) | 2012-06-21 14:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册