Например, у меня есть следующие классы.Как узнать иерархию местоположения собственности в C#?
public class Level1
{
public int intprop;
public Level2 level2;
}
public class Level2
{
public string strprop;
public Level3 level3;
}
public class Level3
{
public float fltprop;
}
Теперь, если я получаю fltprop, то, как знать, эта иерархия свойство как этот Level1.level2.level3.fltpro?
Есть ли какой-либо способ отражения знать иерархию местоположения собственности?
Update:
Если посмотреть в класс Level1 к Level3, вы можете увидеть, что fltprop пребывает внутри Level1 => level2 => level3 => fltprop.
теперь с помощью отражения, если я получаю fltprop как PropertyInfo, тогда я могу знать, что это свойство от Level1 => level2 => level3? означает, что если взять свойствоinfo, то я знаю, что это корневой уровень этого свойства3, тогда зная уровень корня level2 root2, а затем знание level2's root - level1.
Как правило: нет. Все, что у вас есть, - это объект; этот объект может использоваться во многих разных местах или может быть доступен из нескольких маршрутов на одном и том же графике. Единственный способ, которым вы можете выразить что-то вроде этого, - это начать с дерева выражений, то есть 'Expression> expr = x => x.Level2.Level3.fltprop;' - если у вас есть *, что * , тогда ответ становится «да». –