当你知道c#的类名(而不是属性名)时设置它的属性值
本文关键字:属性 设置 当你 | 更新日期: 2023-09-27 18:02:28
我有一个类如下:
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);
然后for Set2ReturnDto
var propertyInfo = obj.GetType().GetProperty(Set2ReturnDto, ??????);
propertyInfo.SetValue(obj, value, null);
编辑:这是实现处理EF存储过程
可以这样做:
var propertyInfo = typeof(DummyReturnDto).GetProperties()
.Single(p => p.PropertyType == typeof(Set1ReturnDto));