从类名称检索静态属性值

时间:2020-10-02 17:48:25

标签: c# reflection

我有一个静态属性,需要在不实例化类的情况下通过名称进行访问。

此工作:

var importantVar = MyClass.MyStaticProperty;

这没用

var qualifiedName = "MyObjects.MyClass";
var theType = Type.GetType(qualifiedName);
var importantVar = (theType).MyStaticProperty;

theType返回null?我怎样才能做到这一点?谢谢!

3 个答案:

答案 0 :(得分:0)

您需要使用反射。这样做

var importantVar = theType.GetProperty("MyStaticProperty", BindingFlags.Static).GetValue(null);

您的值被键入为对象,从疑问中将其强制转换为什么并不明显。

答案 1 :(得分:0)

解决方案(在您的帮助下):

var qualifiedName = "MyObjects.MyClass, MyObjects";
var theType = Type.GetType(qualifiedName);
var importantVar = theType.GetProperty("MyStaticProperty").GetValue(null);

答案 2 :(得分:-1)

下面的示例显示了一种获取静态属性的Type信息的方法。

静态类:

public static class abc
{
    public static int prop1 { get; set; }
}

Type t1 = typeof(abc).GetProperty("prop1").PropertyType;
相关问题