如何使用Reflection获取静态只读属性?它的访问修饰符(public,protected,private)不相关。
答案 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
作为目标对象。