现在的位置: 首页 > 综合 > 正文

Vb.Net 反射的例子

2013年10月18日 ⁄ 综合 ⁄ 共 1539字 ⁄ 字号 评论关闭

'IU2DefineData类名

'IU2DefineData类中IU2AddressInf类名

'address是IU2AddressInf类中的字段

Private Shared mIU2Data As IU2DefineData

Public Function GetDate() As DataTable
            Dim t As Type = GetType(IU2DefineData)
            Dim address As FieldInfo = GetType(IU2AddressInf).GetField("address`")
            Dim value As FieldInfo = GetType(IU2AddressInf).GetField("value")
            Dim comment As FieldInfo = GetType(IU2AddressInf).GetField("Comment")
            Dim dt As DataTable = New DataTable
            Dim rows As DataRow
            Dim fieldKey As String = Nothing
            Dim fields() As FieldInfo
            Try
                dt.Columns.Add("address", GetType(String))
                dt.Columns.Add("value", GetType(String))
                dt.Columns.Add("`data", GetType(String))
                dt.Columns.Add("Comment", GetType(String))
                fields = t.GetFields()
                For Each field As FieldInfo In fields

                   '取到类中变量值
                    fieldKey = field.Name
                    Dim addressValue As String = address.GetValue(field.GetValue(mIU2Data))
                    Dim strvalue As String = value.GetValue(field.GetValue(mIU2Data))
                    Dim strComment As String = comment.GetValue(field.GetValue(mIU2Data))
                    rows = dt.NewRow
                    rows.Item("address") = fieldKey
                    rows.Item("value") = addressValue
                    rows.Item("data") = strvalue
                    rows.Item("Comment") = strComment
                    dt.Rows.Add(rows)`
                Next
            Catch ex As Exception
            End Try
            Return dt
        End Function

抱歉!评论已关闭.