我有一个课程如下:
public class DummyReturnDto
{
public Set1ReturnDto Foo { get; set; }
public Set2ReturnDto Bar { get; set; }
public DummyReturnDto()
{
Set1 = new Set1ReturnDto();
Set2 = new Set2ReturnDto();
}
}
其中所有属性都保证将类作为其类型并且将是唯一的。我想使用反射来设置给定特定类型的属性的值。所以对于 Set1ReturnDto :
var propertyInfo = obj.GetType().GetProperty(Set1ReturnDto, ??????);
propertyInfo.SetValue(obj, value, null);
然后是 Set2ReturnDto
var propertyInfo = obj.GetType().GetProperty(Set2ReturnDto, ??????);
propertyInfo.SetValue(obj, value, null);
编辑:
这是实施Generic approach to dealing with multiple result sets from EF stored procedure
要求所需知识的一部分答案 0 :(得分:4)
This will do it:
var propertyInfo = typeof(DummyReturnDto).GetProperties()
.Single(p => p.PropertyType == typeof(Set1ReturnDto));