L'obtention de référence à l'instance de la Classe par le nom de la chaîne - VB.NET

Est-il possible en utilisant la Réflexion ou une autre méthode pour obtenir une référence à une instance de la classe spécifique à partir du nom de l'instance de classe?

Par exemple le framework pour les applications que je développe fortement utilise les instances de classe tels que:
Public bMyreference comme MyReference = new MyReference

Puis tout au long de l'application bMyReference est utilisé par des contrôles personnalisés et code.

Une des propriétés de contrôles personnalisés est la "FieldName" qui fait référence à une Propriété dans ces instances de classe (bMyReference.MyField) comme une chaîne de caractères.

Ce que je voudrais être en mesure de faire est d'analyser cette chaîne "bMyReference.MyField" et ensuite de se référer à l'Instance réelle de la Propriété.

En VB6 je voudrais utiliser un EVAL ou quelque chose de similaires pour convertir la chaîne de caractères à un objet réel, mais de toute évidence, cela ne fonctionne pas dans VB.net

Ce que je nous vois est quelque chose comme cela

Dim FieldName as String = MyControl.FieldName ' sets FielName to bMyReference.MyField

Dim FieldObject() as String = FieldName.Split(".") ' Split into the Object /Property

Dim myInstance as Object = ......... ' Obtain a reference to the Instance and set as myInstance

Dim myProperty = myInstance.GetType().GetProperty(FieldObject(1))
Si c'est possible, je ne veux même pas vous dire comment le faire, parce que cela conduit à une architecture qui est très mal maintenable, ainsi que assez lent. Il y a beaucoup mieux architectures Orientées Objet qui vous permettra de créer votre application dans une mesure plus appropriée.
Une instance de la classe spécifique, ou une instance d'un type spécifique? Ce sont des choses différentes. Peut-être VB6 est vissage jusqu'à votre idée de OO classes et de propriétés.

OriginalL'auteur | 2010-03-12