| 網(wǎng)站首頁(yè) | 關(guān)于我們 | 開(kāi)發(fā)優(yōu)勢(shì) | 產(chǎn)品展示 |
| 合作企業(yè) | 新聞動(dòng)態(tài) | 聯(lián)系我們 | 電話聯(lián)系 |
文章作者:濟(jì)南軟件開(kāi)發(fā) 時(shí)間:2016年12月21日
現(xiàn)有一個(gè)附加信息對(duì)象AttachedInfo,它里面分別有Info01、Info02.....Info10一共十個(gè)附加信息字段,現(xiàn)在參數(shù)傳過(guò)來(lái)是一個(gè)string[]數(shù)組,要怎么才能將這個(gè)數(shù)組中的元素分別對(duì)應(yīng)到這個(gè)對(duì)象中的各個(gè)字段呢,通過(guò)反射就可以實(shí)現(xiàn),即使后期AttachedInfo中的Info字段增加,或者說(shuō)string[]中的元素個(gè)數(shù)與AttachedInfo中的Info字段個(gè)數(shù)不一致也沒(méi)關(guān)系。
AttachedInfo ai = new AttachedInfo();
//通過(guò)反射將AttachedInfo中的屬性映射成一個(gè)屬性數(shù)組
Reflection.PropertyInfo[] propList = typeof(AttachedInfo).GetProperties();
//遍歷該數(shù)組中的屬性
propList.ToList().ForEach(p =>
{
//將Info開(kāi)頭的屬性全都找出來(lái)
if (p.Name.StartsWith("Info"))
{
//因?yàn)閷傩訧nfo的后兩位都是01、02的數(shù)字,因此可以去掉前綴Info,以此來(lái)對(duì)應(yīng)string[]數(shù)組中的元素索引
int index = Convert.ToInt32(p.Name.TrimStart('I','n','f','o'));
//判斷索引是否超出了string[]數(shù)組
if (index <= smr.AttachedInfos.Count())
{
//給每個(gè)對(duì)象中的字段賦值
p.SetValue(ai, smr.AttachedInfos[index - 1], null);
}
else
{
p.SetValue(ai, null, null);
}
}
});
想要了解更多詳情歡迎來(lái)電咨詢(xún)18678812288
登陸網(wǎng)址:m.h6244.cn。
聯(lián)系人:王經(jīng)理。