Comment écrire le code VB.net dynamique?
-
05-07-2019 - |
Question
Par exemple, j'ai une classe et ses propres propriétés et je passe le nom de la classe et le nom de la propriété à appeler à une fonction
Dites par exemple exp est la variable que je suis en train de transmettre et qui contient une valeur = "ClassA, Property1"
Function Property2BCalled(byval exp as String)
dim classname = split(exp,",")(0)
dim propertyname=split(exp,",")(1)
dim value= classname.propertyname
End Function
Je veux faire quelque chose comme ça, vu ci-dessus.
La solution
Vous pouvez utiliser la réflexion pour effectuer cette tâche. Gardez à l'esprit que la réflexion est lente mais que cela pourrait être fait. Vous pouvez énumérer les classes disponibles dans votre assemblage, lorsque vous trouvez une correspondance de nom, puis énumérer les propriétés, puis invoquer la méthode / propriétés, etc.
Mais il serait peut-être préférable de définir une interface et d'avoir ensuite une signature commune avec laquelle votre projet peut communiquer. Dans ce cas, tout ce dont vous avez besoin est d'une fabrique qui pompe l'instance appropriée de la classe qui entre dans vos données.