d1
не является собственностью.Это поле.Вы можете использовать this.GetType().GetField
, чтобы получить его с помощью отражения.
public object getFieldValue(String fieldName){
return this.GetType().GetField(fieldName).GetValue(this);
}
Вероятно, вы пытаетесь заставить getValue возвращать значение свойства или поля.Вы можете использовать GetMember
, чтобы сказать вам, является ли это свойство или поле.Например:
public object getValue(String memberName) {
var member = this.GetType().GetMember(memberName).Single();
if (member.MemberType == MemberTypes.Property) {
return ((PropertyInfo)member).GetValue(this, null);
}
if (member.MemberType == MemberTypes.Field) {
return ((FieldInfo)member).GetValue(this);
}
else
{
throw new Exception("Bad member type.");
}
}