程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.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
這樣以後寫數據層的時候給參數賦值就不用苦逼的一個一個復制粘貼了
怎麼樣 個人小心得和大家分享
使用代碼生成工具的可以無視啦

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved