【发布时间】:2011-03-27 11:25:05
【问题描述】:
我已将下面的代码简化为一个基本示例,但我仍然无法获得要设置的值。执行 propertyInfo.SetValue() 时,它将在我的 Contact 对象的设置器上命中一个断点,并且该值在“设置器”中正确设置。但是,在 SetValue() 执行后,我的 projectContact.Contact 对象上的字符串属性尚未更改为“a”。知道我在这里做错了什么吗?
IEnumerable<ProjectContact> contacts = GetContactsByProject(projectId);
foreach (ProjectContact projectContact in contacts)
{
foreach (PropertyInfo propertyInfo in projectContact.Contact.GetType().GetProperties())
{
if (propertyInfo.PropertyType == typeof(string))
{
propertyInfo.SetValue(projectContact.Contact, "a", null);
}
}
}
【问题讨论】:
标签: c# reflection properties foreach