具体功能就是通过反射为实体类赋值
public class httpParse<T> where T : new()
{
/// <summary>
/// 为Model赋值
/// </summary>
/// <param name="t">需要转换的实体</param>
/// <param name="form">外部传入的form表单</param>
/// <returns>转换成功的属性数</returns>
public static int GetPost(ref T t, NameValueCollection form)
{
int va = 0;
Type type = t.GetType();//获取类型
PropertyInfo[] pi = type.GetProperties();//获取属性集合
foreach (PropertyInfo p in pi)
{
if (form[p.Name] != null)
{
try
{
p.SetValue(t, Convert.ChangeType(form[p.Name], p.PropertyType), null);//为属性赋值,并转换键值的类型为该属性的类型
va++;//记录赋值成功的属性数
}
catch(Exception ex)
{
throw ex;
}
}
}
return va;
}这个在一些页面像前台传值的时候 可以很大程度减少人工手动的赋值
相关文章
- 02-28一起来学习LiteOS中断模块的源代码
- 02-282021-04-15:给定一个由字符串组成的数组strs,必须把所有的字符串拼接起来,返回所有可能的拼接结果中,字典序最小的结果。
- 02-28同事内推一个华为的技术,有能力用AI技术使图片的人物动起来
- 02-28ssm框架写一个书本简单的增删改查 后台代码(跟着狂神视频整合的)
- 02-28学习较慢,今天做的轮播图大家一起来评论下吧
- 02-28一起来找茬:记一起 clang 开启 -Oz 选项引发的血案
- 02-28跟着上一个tcpServer 一起来的
- 02-28为什么大神们的文章看起来那么酷?除了写的好还使用了生动的动图(gif)。一款【免费】的动图工具screentogif了解一下
- 02-28一起来做简单的三子棋游戏
- 02-28在小程序中修改上一个页面里data中的数据调用上一个页面的方法