繁体   English   中英

从类名中检索静态属性值

[英]Retrieve Static Property Value From Class Name

我有一个静态属性,我需要按名称访问它而不实例化类。

这有效:

var importantVar = MyClass.MyStaticProperty;

这行不通

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

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

您需要使用反射。 像这样做

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

您的值被输入为对象,从问题中将其转换为什么并不明显。

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

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

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

静态类:

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

Type t1 = typeof(abc).GetProperty("prop1").PropertyType;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM