vb.net的反射之GetType.GetProperties取到数组为空的原因

最近在进行一个介于PLC与MES之间的通讯程序,从PLC读数据再组XML上报MES.

组XML使用了XStream,为了方便使用定义了一个所有成员都公开的类,偷懒吗 所以...

 Public Class PLCInfo
        Public Eqp As String
        Public Fab As String
        Public Area As String
        Public QName As String
        Public PlcIp As String
        Public PlcPort As String
        Public PlcNetNo As String
        Public PlcStation As String
        Public PcNetNo As String
        Public PcStation As String
        Public TRX As String
        Public RefreshTime As String
        Public P_PLCReady As String
        Public P_PCRead As String
        Public P_EqpName As String
        Public P_Chip As String
        Public P_Model As String
        Public isGenChip As String
End Class

因为这是个.xml的配置文件 里面有PLC点位,为了可扩展就想用反射取PLC点位的值,myType.GetProperties都是空的...

   '准备PLC点位资讯
            Dim myType As Type = GetType(BootConf.PLCInfo)
            For Each t As System.Reflection.PropertyInfo In myType.GetProperties
                Dim tagName As String = t.Name
                Dim value As String = t.GetValue(objPlcInfo, Nothing)
                '...
             Next

为啥捏?这么简单的应用不应该有问题啊,各种翻各种找,最后在MSDN看到:

---------------------------------------------------------------------

返回值

表示当前 Type 的所有公共属性 (Property) 的 PropertyInfo 对象数组。 - 或 - 如果当前 Type 没有公共属性 (Property),则为 PropertyInfo 类型的空数组。

--------------------------------------------------------------------

原来如此 GetProperties取的对象一定要有Property,要取的对象加个Property,搞定

    Public Class PLCInfo
        Public Eqp As String
        Public Fab As String
        Public Area As String
        Public QName As String
        Public PlcIp As String
        Public PlcPort As String
        Public PlcNetNo As String
        Public PlcStation As String
        Public PcNetNo As String
        Public PcStation As String
        Public TRX As String
        Public RefreshTime As String
        Public P_PLCReady As String
        Public P_PCRead As String
        Public Property P_EqpName As String
        Public Property P_Chip As String
        Public Property P_Model As String
        Public isGenChip As String
    End Class

 

转载于:https://www.cnblogs.com/visions/p/5490778.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值