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

时间:2008-10-29 00:38:23

标签: c# reflection

我知道我可以做到这一点

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的属性而不是父级的属性呢? 即如果声明,则不必另外做。

编辑回答,(谢谢@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 个答案:

答案 0 :(得分:3)

结帐BindingFlags.DeclaredOnly并将其传递给GetProperties(您可能希望至少将其与BindingFlags.PublicBindingFlags.Instance合并。