2010-09-20 33 views
0
class CBase 
{ 
object A {get;set;} 
object B {get;set;} 
} 

class CDerived : CBase 
{ 
object X {get;set} 
object Y {get;set;} 
} 

我试图获得第一级属性。对于上面的例子,预期的属性是X和Y,而不是A和B.使用下面的代码,我得到了所有的属性{A,B,X,Y}。有没有没有属性签名的解决方案?关于最高级别属性的思考

foreach (var propertyInfo in typeof(CDerived).GetProperties()) 
{ 
propertyInfo.SetValue(model, row[propertyInfo.Name], null); 
} 

回答

2

尝试使用DeclaredOnly绑定标志的GetProperties通话。这应该限制返回到指定的继承(class)级别的属性。

+0

http://stackoverflow.com/questions/1544979/c-reflection-getproperties-with-bindingflags-declaredonly – 2010-09-20 22:57:48