2008-10-29 75 views
2

我知道我能做到这一点如何使用反射获取对象的属性?

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语句。

编辑的答案,(感谢@格雷格榉木) 这工作: -

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

回答

3

退房BindingFlags.DeclaredOnly并传递到GetProperties(你可能会至少要与BindingFlags.PublicBindingFlags.Instance相结合)。

相关问题