当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net之反射

asp.net之反射

2019年04月19日  | 移动技术网IT编程  | 我要评论

人性伊甸园,迷羊 神魂颠倒,3dmax2009

还记得三层吗
没错 今天就讲我们在写三层的时候使用反射来减少代码的书写量
 
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);
    }
 
本文讲反射 现在就说在这段代码的哪个位置使用反射 只是本人编码过程中为了省劲突发奇想
   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;

  当类里有很多属性的时候上面这段代码可以使用反射来赋值
  
 
     
//使用反射记得引用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
这样以后写数据层的时候给参数赋值就不用苦逼的一个一个复制粘贴了
怎么样 个人小心得和大家分享
使用代码生成工具的可以无视啦

 


摘自 在唱歌

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网