代码之家  ›  专栏  ›  技术社区  ›  Paul Rowland

如何使用反射获取对象的属性?

  •  2
  • Paul Rowland  · 技术社区  · 16 年前

    我知道我能做到

    foreach (PropertyInfo property in myobject.GetType().GetProperties())
    {
        if (property.DeclaringType.ToString() == myobject.GetType().ToString())
        {
             // only have my object properties here
             // and not parent of my object properties
        }
    }
    

    但是我怎么能 只是 获取myObject的属性,而不是父对象的属性? 我不需要做额外的if语句。

    编辑回答,(谢谢@greg beech) 这起作用了:

    foreach (PropertyInfo property in 
                 myobject.GetType().GetProperties
                     (BindingFlags.Public | 
                      BindingFlags.DeclaredOnly | 
                      BindingFlags.Instance))
    {
        // only properties of my object not parent of myobject
    }
    

    我还找到了这个链接 http://msdn.microsoft.com/en-us/library/4ek9c21e.aspx

    1 回复  |  直到 16 年前
        1
  •  3
  •   Greg Beech    16 年前

    退房 BindingFlags.DeclaredOnly 把那个传给 GetProperties (你可能想把它和 BindingFlags.Public BindingFlags.Instance 至少)。