华域联盟 .Net asp.net 反射减少代码书写量

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

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

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

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

您可能感兴趣的文章:

  • 浅谈.NET反射机制的性能优化 附实例下载
  • .net中 关于反射的详细介绍
  • asp.net反射简单应用实例
  • .NET/C#利用反射调用含ref或out参数的方法示例代码
  • .NET/C#如何使用反射注册事件详解
  • .NET Core/Framework如何创建委托大幅度提高反射调用的性能详解

本文由 华域联盟 原创撰写:华域联盟 » asp.net 反射减少代码书写量

转载请保留出处和原文链接:https://www.cnhackhy.com/50767.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部