System.Reflection.TargetException 是什么:非静态方法需要一个目标。意思是?

What does System.Reflection.TargetException: Non-static method requires a target. mean?

在我的应用程序中,我从某处收到 functionCode 值,需要反映适当的 class。我试图根据 解决方案反映适当的类型。但它对我不起作用。我无法使用 GetField() 方法,因为我正在处理 PCL 项目。因此我尝试了这些代码行:

AssemblyName name = new AssemblyName("MyLibrary");
var type = Assembly.Load(name);
type.DefinedTypes.FirstOrDefault(x =>
x.GetDeclaredProperty("functionCode") != null &&
 (byte)x.GetDeclaredProperty("functionCode").GetValue(null) == val);

也不行。它抛出 System.Reflection.TargetException:非静态方法需要一个目标。

这意味着非静态方法需要一个对象。如果您有一个实例成员,那么您必须使用一个实例来获取它的值。因为没有实例,它不会 exist.So 你需要将类型的实例而不是 null 传递给 GetValue method.Or 如果你不希望它成为实例成员。