源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

asp.net 反射减少代码书写量

  • 时间:2021-11-24 11:07 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:asp.net 反射减少代码书写量
 
[u]复制代码[/u] 代码如下:
public bool Add(Liuyan refmodel)     {         string sql = "insert into liuyan(name,phone,zhiwei,gongsi,addr,country,dianyou,content,adddate)values(@name,@phone,@zhiwei,@gongsi,@addr,@country,@dianyou,@content,@adddate)";         OleDbParameter[] parameters ={             new OleDbParameter("@name",OleDbType.VarChar),             new OleDbParameter("@tel",OleDbType.VarChar),             new OleDbParameter("@zhiwei",OleDbType.VarChar),             new OleDbParameter("@gongsi",OleDbType.VarChar),             new OleDbParameter("@addr",OleDbType.VarChar),             new OleDbParameter("@country",OleDbType.VarChar),             new OleDbParameter("@dianyou",OleDbType.VarChar),             new OleDbParameter("@content",OleDbType.VarChar),             new OleDbParameter("@adddate",OleDbType.VarChar)         };         parameters[0].Value=model.Xingming;         parameters[1].Value=model.Tel;         parameters[2].Value=model.Zhiwei;         parameters[3].Value=model.Gongsi;         parameters[4].Value=model.Addr;         parameters[5].Value=model.Country;         parameters[6].Value=model.Dianyou;         parameters[7].Value=model.Content;         parameters[8].Value=model.Adddate;         return sqlHelper.executeCommand(sql, parameters);     }  
本文讲反射 现在就说在这段代码的哪个位置使用反射 只是本人编码过程中为了省劲突发奇想
[u]复制代码[/u] 代码如下:
   parameters[0].Value=model.Xingming;         parameters[1].Value=model.Tel;         parameters[2].Value=model.Zhiwei;         parameters[3].Value=model.Gongsi;         parameters[4].Value=model.Addr;         parameters[5].Value=model.Country;         parameters[6].Value=model.Dianyou;         parameters[7].Value=model.Content;         parameters[8].Value=model.Adddate;
  当类里有很多属性的时候上面这段代码可以使用反射来赋值     
[u]复制代码[/u] 代码如下:
     //使用反射记得引用using System.Reflection;命名空间      Type t = refmodel.GetType();        for (int i = 0; i < t.GetProperties().Length; i++)         {             parameters[i].Value= t.GetProperties()[i].GetValue(refmodel, null);         }
这里使用反射来获取类的所有属性 然后遍历属性并把遍历到的属性值赋给参数 当然这里是添加的方法没有model.Id 所以for循环的时候要从1开始 然后 parameters[i].Value赋值的时候i要减一  parameters[i-1].Value 这样以后写数据层的时候给参数赋值就不用苦逼的一个一个复制粘贴了 怎么样 个人小心得和大家分享 使用代码生成工具的可以无视啦
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部