运用反射给实体赋值,跟据控件命名

it2022-05-09  23

代码     ///   <summary>           /// 实体类赋值          ///  注意:控件名称需要和数据库字段名称一致          ///   </summary>           ///   <param name="t"> 实体对象 </param>           ///   <param name="form"> Request.Form </param>           ///   <param name="controlPrefix"> 控件前缀数据(服务端控件生成HTML时自动加入部分) </param>           ///   <returns></returns>           public   static   int  GetPost( ref  T t, NameValueCollection form,  string [] controlPrefixs)         {              int  va  =   0 ;             Type type  =  t.GetType(); // 获取类型              PropertyInfo[] pi  =  type.GetProperties(); // 获取属性集合               for  ( int  i  =   0 ; i  <  controlPrefixs.Length; i ++ )             {                  foreach  (PropertyInfo p  in  pi)                 {                      if  (form[controlPrefixs[i]  +  p.Name]  !=   null )                     {                          try                          {                             p.SetValue(t, Convert.ChangeType(form[controlPrefixs[i]  +  p.Name], p.PropertyType),  null ); // 为属性赋值,并转换键值的类型为该属性的类型                              va ++ ; // 记录赋值成功的属性数                          }                          catch  (Exception ee)                         {                         }                     }                 }             }              return  va;         }

 

转载于:https://www.cnblogs.com/zt04985807/archive/2010/05/18/1738066.html


最新回复(0)