我有一个示例类
public class sampleClass
{
public string givenName { get; set; }
public string familyName { get; set; }
}
以及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];
}
}
}
但我不知道该怎么做
propInfo.Value = dataModel[propInfo.Name];
帮助!谢谢!!
答案 0 :(得分:5)
你需要一个sampleClass实例来设置属性,然后你可以使用SetValue函数来做到这一点:
propInfo.SetValue(yourinstance, dataModel[propInfo.Name], null);
请参阅此网址:http://msdn.microsoft.com/en-us/library/axt1ctd9.aspx
答案 1 :(得分:1)
propInfo.SetValue(sampleClass, dataModel[propInfo.Name], null)