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

 更新时间:2013年06月13日 10:23:44   作者:  
还记得三层吗?没错 今天就讲我们在写三层的时候使用反射来减少代码的书写量

 

复制代码 代码如下:

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

相关文章

  • vscode extension插件开发详解

    vscode extension插件开发详解

    这篇文章主要介绍了vscode extension插件开发,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 最详细的ASP.NET微信JS-SDK支付代码

    最详细的ASP.NET微信JS-SDK支付代码

    这篇文章主要为大家介绍了最详细的ASP.NET微信JS-SDK支付代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 分享Visual Studio原生开发的10个调试技巧(2)

    分享Visual Studio原生开发的10个调试技巧(2)

    这篇文章又为大家分享了Visual Studio原生开发的10个调试技巧,感兴趣的朋友可以参考一下
    2015-11-11
  • 解析asp.net的分页控件

    解析asp.net的分页控件

    本文主要对AspNetPager.dll这个分页控件进行介绍,它主要用于asp.net webform网站。文章结尾附上实例下载,有需要的朋友可以看下
    2016-12-12
  • linq中的限定操作符

    linq中的限定操作符

    这篇文章介绍了linq中的限定操作符,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • ASP.NET Core Project.json文件(5)

    ASP.NET Core Project.json文件(5)

    这篇文章主要为大家详细介绍了ASP.NET Core Project.json文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • linq中的分区操作符

    linq中的分区操作符

    这篇文章介绍了linq中的分区操作符,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • CefSharp v62修改方法(支持.net4.0)

    CefSharp v62修改方法(支持.net4.0)

    下面小编就为大家分享一篇CefSharp v62修改方法(支持.net4.0),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • ASP.NET用户控件技术

    ASP.NET用户控件技术

    ASP.NET用户控件技术...
    2007-04-04
  • ASP.NET MVC中使用JavaScriptResult的用法示例

    ASP.NET MVC中使用JavaScriptResult的用法示例

    这篇文章主要介绍了ASP.NET MVC中使用JavaScriptResult的用法,结合实例形式分析了采用javascript动态设置标签样式以及使用MVC中的JavaScriptResult来实现同样效果的相关技巧,需要的朋友可以参考下
    2016-08-08

最新评论