有没有一种方法可以使用反射从开放类型中获取属性的值?
class Program
{
static void Main(string[] args)
{
var target = new GenericType<string>();
target.GetMe = "GetThis";
target.DontCare = "Whatever";
var prop = typeof(GenericType<>).GetProperty("GetMe");
var doesntWork = prop.GetValue(target);
}
}
public class GenericType<T>
{
public string GetMe { get; set; }
public T DontCare { get; set; }
}
prop.GetValue(target)
会抛出以下异常:
无法在包含泛型参数的类型或方法上执行后期绑定操作。
我知道可以使用 target.GetType().GetProperty("GetMe").GetValue(target)
来获取值,但我想知道是否有一种方法可以在不知道类型的情况下获取值。
简单的解决方案是创建一个非泛型基类,其中只包含 GetMe
,但我现在不能进行该更改。