Нет, вы не можете использовать отражение, чтобы окончательно получить объект за произвольным свойством.Во многом потому, что не гарантируется, что каждое свойство связано с объектом.С таким же успехом это может быть вычисленное значение.
public class Student {
public string m_firstName;
public string m_lastName;
public string FullName {
get { return String.Format("{0} {1}", m_firstName, m_lastName); }
}
}
В этом случае свойство FullName
создает вычисленное значение и не имеет единственного объекта поддержки.
Случай, который вы перечисляете, хотя и для авто-свойств.Вероятно, есть способ копаться в полях и использовать форму сопоставления имен, чтобы получить тот, который поддерживает данное авто-свойство.Однако такое решение было бы хрупким для управления версиями и, конечно, не рекомендуется.