您身边的App定制专业企业--10年开发经验为您护航

18678812288
0531-88887250

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

文章编辑:2138com太阳集团 时间: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。
    联系人:王经理。

    XML 地图 | Sitemap 地图