Pet*_*ith 2 c# reflection properties
我有一个样本课
public class sampleClass
{
public string givenName { get; set; }
public string familyName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
以及包含在该类中的一组值IDictionary<string, object> dataModel.我可以使用反射来迭代dataModel并使用dataModel键来获取值.
我想做的事情如下:
void UpdateValues(IDictionary<string, object> dataModel)
{
Type sourceType = typeof(sampleClass);
foreach (PropertyInfo propInfo in (sourceType.GetProperties()))
{
if (dataModel.ContainsKey(propInfo.Name))
{
// set propInfo value here
propInfo.Value = dataModel[propInfo.Name];
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我不知道该怎么做
propInfo.Value = dataModel[propInfo.Name];
Run Code Online (Sandbox Code Playgroud)
救命!谢谢 !!
小智 5
你需要一个sampleClass实例来设置属性,然后你可以使用SetValue函数来做到这一点:
propInfo.SetValue(yourinstance, dataModel[propInfo.Name], null);
Run Code Online (Sandbox Code Playgroud)
请参阅此URL:http://msdn.microsoft.com/en-us/library/axt1ctd9.aspx
| 归档时间: |
|
| 查看次数: |
3178 次 |
| 最近记录: |