网站首页 | 关于我们 | 开发优势 | 产品展示 |
合作企业 | 新闻动态 | 联系我们 | 电话联系 |
文章作者:济南软件开发 时间:2016年12月21日
现有一个附加信息对象AttachedInfo,它里面分别有Info01、Info02.....Info10一共十个附加信息字段,现在参数传过来是一个string[]数组,要怎么才能将这个数组中的元素分别对应到这个对象中的各个字段呢,通过反射就可以实现,即使后期AttachedInfo中的Info字段增加,或者说string[]中的元素个数与AttachedInfo中的Info字段个数不一致也没关系。
AttachedInfo ai = new AttachedInfo();
//通过反射将AttachedInfo中的属性映射成一个属性数组
Reflection.PropertyInfo[] propList = typeof(AttachedInfo).GetProperties();
//遍历该数组中的属性
propList.ToList().ForEach(p =>
{
//将Info开头的属性全都找出来
if (p.Name.StartsWith("Info"))
{
//因为属性Info的后两位都是01、02的数字,因此可以去掉前缀Info,以此来对应string[]数组中的元素索引
int index = Convert.ToInt32(p.Name.TrimStart('I','n','f','o'));
//判断索引是否超出了string[]数组
if (index <= smr.AttachedInfos.Count())
{
//给每个对象中的字段赋值
p.SetValue(ai, smr.AttachedInfos[index - 1], null);
}
else
{
p.SetValue(ai, null, null);
}
}
});
想要了解更多详情欢迎来电咨询18678812288
登陆网址:www.jnydkj.cn。
联系人:王经理。