如何知道PropertInfo(反射)中的属性是否为数组

时间:2015-12-03 17:25:30

标签: arrays vb.net class reflection

我得到了这样的课程:

<Serializable()> Public Class SACCVar


Private _Code_Produit As String
Private _Voie_Ana_Name(6) As String

Public Property Voie_Ana_Name(index As Integer) As String
    Get
        Return _Voie_Ana_Name(index)
    End Get
    Set(value As String)

        _Voie_Ana_Name(index) = value
    End Set
End Property
 Public Property Code_Produit As String
        Get
            Return _Code_Produit
        End Get
        Set(value As String)
             _Code_Produit = value
         End Set
    End Property
    End Class

然后我想使用这个循环遍历class属性:

dim saccdata as SACCVar
Dim VarType As Type = GetType(SACCVar)
Dim properties As PropertyInfo() = VarType.GetProperties()

 For Each proper As PropertyInfo In properties

    proper.GetValue(SaccData, {0})

 next

但是如果我想得到code_produit,那么我必须设置 nothing 代替{0},因为它不是数组。

所以我的问题是如何检测正确是否为数组?

谢谢

1 个答案:

答案 0 :(得分:0)

您必须使用PropertyInfo.PropertyType Property检索属性的类型。 然后,您可以使用Type.IsArray Property检查类型是否为数组。

For Each proper As PropertyInfo In properties
   If proper.PropertyType.IsArray Then
      [...]
   End If
next