我试图使用反射,我见过的所有例子都说这应该有效。我试图获取PortName属性,如下所示。
返回null:
var port = this.GetType().GetProperty("PortName", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetProperty);
答案 0 :(得分:2)
您希望获得PortName
中字段port
的{{1}}属性的值,该字段本身是plc
的字段
你正在做的是尝试从this
获取名为PortName
的属性,这显然不存在。
因此,让我们在this
中获取字段port
并获取plc
的值:
PortName
现在您可以使用var field =
this.plc.GetType().GetField("port", BindingFlags.NonPublic | BindingFlags.Instance);
SerialPort port = (SerialPort)field.GetValue(this.plc);