例如,我有以下几个类。
现在,如果我获得了fltprop,那么怎样知道这个属性层级的结构是这样的Level1.level2.level3.fltpro?
在反射中有没有方法可以知道属性位置的层次结构?
更新:
如果您查看Level1到Level3类,您可以看到fltprop位于Level1 => level2 => level3 => fltprop内。
现在通过使用反射,如果我将fltprop作为PropertyInfo获取,那么我能知道该属性来自Level1 => level2 => level3吗?这意味着通过获取propertyinfo,我必须知道此属性的根级别是level3,然后知道level3的根级别是level2,然后知道level2的根是level1。
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?
在反射中有没有方法可以知道属性位置的层次结构?
更新:
如果您查看Level1到Level3类,您可以看到fltprop位于Level1 => level2 => level3 => fltprop内。
现在通过使用反射,如果我将fltprop作为PropertyInfo获取,那么我能知道该属性来自Level1 => level2 => level3吗?这意味着通过获取propertyinfo,我必须知道此属性的根级别是level3,然后知道level3的根级别是level2,然后知道level2的根是level1。
Expression<Func<Level1,float>> expr = x => x.Level2.Level3.fltprop;
- 如果你有了 那个,那么答案就是“是的”。 - Marc Gravell