VB.NET : Aggiungere elementi a proprietà di tipo collection in maniera dinamica utilizzando il nome della collection
Dati un oggetto parentObj che ha tra le sue proprietà una collection, il nome collectionName della collection ed un oggetto childObj da aggiungere alla collection, la seguente routine esegue semplicemente l'equivalente di :
parentObj.collectionName.Add(childObj)
utilizzando la Reflection :
Public Sub AddObjectToCollection(ByRef ParentObj As Object, _
ByVal CollectionName As String, _
ByRef ChildObj As Object)
Dim parentType As Type = ParentObj.GetType()
Dim colProp As PropertyInfo = parentType.GetProperty(CollectionName)
Dim coll As Object = CType(colProp.GetValue(ParentObj, Nothing), Object)
Dim collType As Type = coll.GetType()
Dim typeArray(0) As Type
typeArray.SetValue(ChildObj.GetType(), 0)
Dim addMethodInfo As MethodInfo = collType.GetMethod("Add", typeArray)
addMethodInfo.Invoke(coll, New Object() {ChildObj})
End Sub
Nessun commento:
Posta un commento