定义了一个泛型类,某个属性的类型为泛型:
[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>();
var instance = Activator.CreateInstance(typeof(M_ExportExcel<>).MakeGenericType(typeRun));
注意你获得的instance是一个object。
竟然是水牛刀刀。受宠若惊啊。。。再追问一个,读取属性要怎么写。 我这么写运行时异常了:
instanceM_ExportExcel.GetType().GetProperty("RuntimeModel").GetValue(saa,null);
@十分师傅: 参数写错了。解决了。哈哈。 谢谢水牛刀刀! 100分全给你了。
@十分师傅: 刚看到,还好你自己解决了,nice!
100分啊!水牛就这样干掉了?
啊?难道不对?
@水牛刀刀: 对!只是我来晚了!冲级……READY……没的fire了。
@笨笨蜗牛: 第一次提问题,不知道要下多少分。 就随便下了100。看问题列表的时候,才发现,原来别人提的都是10分20分。 - - ! 这下要亏大了。
@十分师傅: 哈哈,不是亏大了。。。这个分也没什么,只是玩玩而已。
另外,有时,分数多,说明这个问题的重视程度、难度,也说明提问人对答问人的尊重程度。
分用光了,再提问就没有分了,只能自己慢慢赚咯(参考:问答园豆增减规则?http://q.cnblogs.com/q/faq#hy)。
其实,没有分,大家也乐于回答。这里的分不过是一个闲暇之余的一个乐趣。
@笨笨蜗牛: 恩。两位大牛。 受教了。嘿嘿。