zoukankan      html  css  js  c++  java
  • asp.net之反射

    还记得三层吗

    没错 今天就讲我们在写三层的时候使用反射来减少代码的书写量

    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

    这样以后写数据层的时候给参数赋值就不用苦逼的一个一个复制粘贴了

    怎么样 个人小心得和大家分享

    使用代码生成工具的可以无视啦

  • 相关阅读:
    Web开发用到的导航栏固定顶端,页脚固定低端
    Action Filter 与 内置的Filter实现(实例-防盗链)转
    MVC 通过继承HandleErrorAttribute,使用log4net或ELMAH组件记录异常等
    HTML5中custom data-*特性与asp.net mvc 3 表单验证
    jQuery验证控件jquery.validate.js使用说明+中文API (转)
    Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案 (转)
    Android定制控件-带图像的TextView
    使用Elmah记录日志
    laravel路由与控制器(资源路由restful)
    npm 常用命令
  • 原文地址:https://www.cnblogs.com/maxiao/p/2495640.html
Copyright © 2011-2022 走看看