【问题标题】:How to use Reflection to retrieve a property?如何使用反射来检索属性?
【发布时间】:2011-07-12 00:41:49
【问题描述】:

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

【问题讨论】:

    标签: c# reflection


    【解决方案1】:

    您可以使用 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"; }
     } 
    }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        就像您获得任何其他属性一样(例如,查看the answer to this question)。

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

        【讨论】:

          猜你喜欢
          • 2017-01-28
          • 1970-01-01
          • 2010-09-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-22
          相关资源
          最近更新 更多