【发布时间】:2013-05-01 03:19:38
【问题描述】:
我正在从数据库数据创建一个通用对象:
object[] data = new object[dataReader.FieldCount];
dataReader.GetValues(data);
T t = (T)Activator.CreateInstance(typeof(T), data);
但是,第三行没有构造函数错误的类型。我想加一个if:
if (typeof(T).GetConstructor(data.TypesOf()) != null)
data.TypesOf() 实际上是一个数组 - Type[] - 包含data 中所有类型的对象。
真正有效的data.TypesOf() 是什么?
或者我需要迭代 data 并自己构建它?
【问题讨论】:
-
data始终是object[]- 它与typeof(T)没有任何关系,因为它只是来自读者的值。你想用data.TypesOf()代表什么? -
@MarcGravell。
data.TypesOf()是一个Type[]数组,其中包含data的类型。按顺序,在那。已添加到问题中。