.NET:GetDeclaredProperty()与...之间有什么区别?的getProperty()?

时间:2013-05-10 21:16:38

标签: c# .net reflection

我提到了MSDN库,但仍然感到困惑。那么这两种方法之间的区别是什么?谁能举个例子呢?

提前谢谢。 :)

2 个答案:

答案 0 :(得分:11)

GetDeclaredProperty将仅返回在当前类型上声明的属性。 GetProperty也将返回在父类上定义的属性。

此外,GetProperty有重载,因此您可以指定是仅要私有属性还是公共属性,实例还是静态属性等。

调用GetDeclaredProperty等同于调用:

GetProperty(name, 
    BindingFlags.NonPublic | 
    BindingFlags.Public | 
    BindingFlags.Static | 
    BindingFlags.Instance | 
    BindingFlags.DeclaredOnly);

答案 1 :(得分:2)

GetDeclaredProperty将返回仅为给定类型定义的属性,而不是那些继承的属性。这包括使用new修饰符的属性,该修饰符为类继承了属性。

实际上,它是这个

的简写

typeof(Uri).GetProperty("Host", BindingFlags.DeclaredOnly)