网络编程 
首页 > 网络编程 > 浏览文章

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

(编辑:jimmy 日期: 2025/12/27 浏览:3 次 )

 复制代码 代码如下:
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
这样以后写数据层的时候给参数赋值就不用苦逼的一个一个复制粘贴了
怎么样 个人小心得和大家分享
使用代码生成工具的可以无视啦

上一篇:ASP.Net 之Datalist删除功能详解附代码
下一篇:ASP.NET之Response.Cookies.Remove 无法删除COOKIE的原因
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 网站地图 SiteMap