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

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

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

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

posted @   小马在唱歌  阅读(704)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示