【发布时间】:2011-07-12 00:41:49
【问题描述】:
如何使用反射来获取静态只读属性?它的访问修饰符(public、protected、private)不相关。
【问题讨论】:
标签: c# reflection
如何使用反射来获取静态只读属性?它的访问修饰符(public、protected、private)不相关。
【问题讨论】:
标签: c# reflection
您可以使用 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"; }
}
}
【讨论】:
将 Type.GetProperty() 与 BindingFlags.Static 结合使用。然后是 PropertyInfo.GetValue()。
【讨论】:
就像您获得任何其他属性一样(例如,查看the answer to this question)。
唯一的区别是你在调用GetValue时会提供null作为目标对象。
【讨论】: