c# PropertyInfo类的问题
protectedobjectAssembleObject(Typetype,System.Data.IDataReaderreader){objecto=Activat...
protected object AssembleObject(Type type, System.Data.IDataReader reader)
{
object o = Activator.CreateInstance(type);
if (o == null)
return null;
PropertyInfo[] properties = type.GetProperties();//声明一个获取类型属性的变量
for (int i = 0; i < reader.FieldCount; i++)
{
PropertyInfo property = type.GetProperty(reader.GetName(i));//得到第i列的所有属性
object val = reader[i];//第i列
if (val != DBNull.Value && property != null && property.CanWrite)//判断对象是否为空,属性是否为空,属性是否可写!如果都为true
property.SetValue(o, reader[i].ToString(), null);//o对象,reader[i]对象的新值,索引器空的
}
return o;
}
谁帮我读读这段程序!每一行都需要注释下啊!
object val = reader[i];//第i列
这行呢? 展开
{
object o = Activator.CreateInstance(type);
if (o == null)
return null;
PropertyInfo[] properties = type.GetProperties();//声明一个获取类型属性的变量
for (int i = 0; i < reader.FieldCount; i++)
{
PropertyInfo property = type.GetProperty(reader.GetName(i));//得到第i列的所有属性
object val = reader[i];//第i列
if (val != DBNull.Value && property != null && property.CanWrite)//判断对象是否为空,属性是否为空,属性是否可写!如果都为true
property.SetValue(o, reader[i].ToString(), null);//o对象,reader[i]对象的新值,索引器空的
}
return o;
}
谁帮我读读这段程序!每一行都需要注释下啊!
object val = reader[i];//第i列
这行呢? 展开
2个回答
展开全部
貌似都有注释了嘛,只有第一行
object o = Activator.CreateInstance(type);
这是建立了一个type类型的实例
这整个方法是在做数据库到实例类的映射,把读出的各字段赋到创建的对象里面返回
问题补充:object val = reader[i];//第i列
这行呢?
这行是reader的第i列,也就是数据库的第i列读出到val里
object o = Activator.CreateInstance(type);
这是建立了一个type类型的实例
这整个方法是在做数据库到实例类的映射,把读出的各字段赋到创建的对象里面返回
问题补充:object val = reader[i];//第i列
这行呢?
这行是reader的第i列,也就是数据库的第i列读出到val里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询