反射填充泛型集合List方法
从datareader将数据填充到数据实体泛型集合的静态方法。
//kchen.core.basebusinessobject为通用数据实体类,此处仅为限定t所继承的类型
public static ilist filldatalistgeneric(system.data.idatareader reader) where t : kchen.core.basebusinessobject
{
//实例化一个list<>泛型集合
ilist datalist = new list();
while (reader.read())
{
//由于是是未知的类型,所以必须通过activator.createinstance()方法来依据t的类型动态创建数据实体对象
t rowinstance = activator.createinstance();
//通过反射取得对象所有的property
foreach (propertyinfo property in typeof(t)。getproperties())
{
//bindingfieldattribute为自定义的attribute,用于与数据库字段进行绑定
foreach (bindingfieldattribute fieldattr in property.getcustomattributes(typeof(bindingfieldattribute), true))
{
try
{
//取得当前数据库字段的顺序
int ordinal = reader.getordinal(fieldattr.fieldname);
if (reader.getvalue(ordinal) != dbnull.value)
{
//将datareader读取出来的数据填充到对象实体的属性里
property.setvalue(rowinstance, convert.changetype(reader.getvalue(ordinal), property.propertytype), null);
}(来源www.iocblog.net)
}
catch
{
break;
}
}
}
Tag: DataReader
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。