在我的应用程序中,我从某个地方接收functioncode值,需要反映适当的类。我试着根据this溶液来反映适当的类型。但这对我不起作用。我不能使用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:非静态方法需要目标。
最佳答案
这意味着非静态方法需要一个对象。如果有实例成员,则必须使用实例来获取其值。因为没有实例,它不存在。因此,您需要传递类型的实例而不是null
到GetValue
方法。或者,如果您不希望它是实例成员,则使成员static
。
关于c# - System.Reflection.TargetException有什么作用:非静态方法需要一个目标。意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28342206/