Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用反射检索属性?_C#_Reflection - Fatal编程技术网

C# 如何使用反射检索属性?

C# 如何使用反射检索属性?,c#,reflection,C#,Reflection,如何使用反射获取静态只读属性?它的访问修饰符(public、protected、private)不相关。您可以使用类型类的GetProperty()方法: 将Type.GetProperty()与BindingFlags.Static一起使用。然后是PropertyInfo.GetValue()。就像您将获得任何其他属性一样(例如,查看) 唯一的区别是,在调用GetValue时,您将提供null作为目标对象 Type t = typeof(MyType); PropertyInfo pi =

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

您可以使用类型类的GetProperty()方法:


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

就像您将获得任何其他属性一样(例如,查看)

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

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

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