У меня есть класс следующим образом:Установка # Значение свойства C, когда вы знаете его имя класса (не имя свойства)
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);
EDIT:
Это часть необходимых знаний для выполнения требований к Generic approach to dealing with multiple result sets from EF stored procedure
Вы уверены, что каждый тип встречается только один раз в вашем классе 'DummyReturnDto'? – HimBromBeere
@ TheEdge Почему бы вам это хотеть? – atlaste
Зачем использовать отражение для этого? Не можете ли вы просто сохранить внутренний словарь от типа к экземпляру и заставить геттеры и сеттеры делегировать этот словарь? Чего вы пытаетесь достичь? Отражение очень редко является решением. –