Ok, je ne pense pas que ce soit possible, donc j'ai pensé que je demanderais à être sûr. Je suis en train de créer une fonction qui reflète sur les propriétés d'une classe et les ajoute à cette structure de données que j'ai. Certaines propriétés sont des types génériques.cast à type générique à l'exécution
Nous avons donc dire DataType(Of T)
qui a une propriété .Value
de type T
:
Dim properties = GetType(MyType).GetFields(Reflection.BindingFlags.Public Or _
Reflection.BindingFlags.Instance)
For Each prop As fieldinfo In properties
Collection.Add(prop.Name,prop.GetValue(poco))
Next
Dans le collection.Add
pour les types primitifs (Integer
, String
, etc. & hellip;) Je veux juste ajouter le type .. mais dans le cas de générique, je veux ajouter le DataType(Of T).Value
. J'espère qu'il y a un peu de travail mais je ne pense pas qu'il y ait un moyen parce que le type de T
ne peut pas être déterminé au moment de la compilation, n'est-ce pas? Idéalement, DirectCast(prop.getvalue(poco), DataType(Of T)).Value
serait possible. C'est à ce moment-là que vous avez espéré que plus de dynamique apparaisse que ce qui est dans .NET 4.0.
Donc je suppose que ce n'est pas possible? – coding4fun
Votre réponse est ici: http://stackoverflow.com/questions/2891797/typecasting-generic-parameters – pylover