20 aprile 2007

VB.NET : Determinare se un oggetto ha una determinata proprietà

La seguente funzione consente di sapere se un oggetto obj, passato come argomento, dispone di una proprietà chiamata propertyName eventualmente del tipo propertyType:


Public Function ObjectHasProperty(ByVal obj As Object, ByVal propertyName As String, Optional ByVal propertyType As Type = Nothing) As Boolean
  Dim retVal As Boolean = False
  Dim objType As Type = obj.GetType()
  Dim propinfo As System.Reflection.PropertyInfo = objType.GetProperty(propertyName)
  If Not propinfo Is Nothing Then
    If propertyType Is Nothing Or propinfo.PropertyType.IsAssignableFrom(propertyType) Then
      retVal = True
    End If
  End If
  Return retVal
End Function

Nessun commento: