XML | HTML | TXT
您当前位置:软件开发 >> 新闻动态 >> 软件开发技术 >> 浏览文章

通过反射将数组中的元素给一个对象中的各个字段赋值--济南软件开

现有一个附加信息对象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 E-Mail:1069706080@qq.com
    地址:山东省济南市舜耕路泉城公园东门园内向北50米 鲁ICP备07011972号 版权所有2008-2013 山东赢德信息科技有限公司