使用C#反射,对象与目标类型不匹配

35

我正在尝试获取窗口的值,方法如下:

this 指的是主窗口(window1)。

Type type = this.GetType();
PropertyInfo pi = type.GetProperty("Left");
object obj = pi.GetValue(type, null);

但是我得到了一个“使用不匹配目标类型的对象”错误。出了什么问题?

2个回答

55
因为你正在尝试获取类型(Type)的'Left'属性,而不是实例(instance)的属性。
尝试这样做。
object obj = pi.GetValue(this, null);

1

使用这段代码

object obj = property.GetValue(currentObject, null);


7
仅提供代码块通常不是有用的答案。如果您可以编辑您的答案并解释您展示的代码是做什么的,以及为什么/如何该代码回答了问题,那将非常有帮助。 - Lea Cohen
当您在属性中有字符串或任何非复杂类型作为值时,应该将当前对象(用于获取属性的对象)作为参数发送,而不是使用“this”。 - Ramakrishna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接