2

我有一个示例课程

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];

帮助!谢谢 !!

4

2 回答 2

5

你需要一个 sampleClass 的实例来设置属性,然后你可以使用 SetValue 函数来做到这一点:

propInfo.SetValue(yourinstance, dataModel[propInfo.Name], null);

看到这个网址:http: //msdn.microsoft.com/en-us/library/axt1ctd9.aspx

于 2012-10-23T22:45:45.490 回答
1
propInfo.SetValue(sampleClass, dataModel[propInfo.Name], null)
于 2012-10-23T22:54:05.803 回答