如何使用Reflection来检索属性?

时间:2011-03-09 15:57:16

标签: c# reflection

如何使用Reflection获取静态只读属性?它的访问修饰符(public,protected,private)不相关。

3 个答案:

答案 0 :(得分:5)

您可以使用Type类的GetProperty()方法: http://msdn.microsoft.com/en-us/library/kz0a8sxy.aspx

Type t = typeof(MyType);
PropertyInfo pi = t.GetProperty("Foo");
object value = pi.GetValue(null, null);

class MyType
{
 public static string Foo
 {
   get { return "bar"; }
 } 
}

答案 1 :(得分:4)

将Type.GetProperty()与BindingFlags.Static一起使用。然后是PropertyInfo.GetValue()。

答案 2 :(得分:3)

就像你会获得任何其他财产一样(例如,查看the answer to this question)。

唯一的区别是,在调用null时,您会提供GetValue作为目标对象。