Créer un objet instance d'une classe, d'avoir son nom dans une variable de chaîne de
Je ne sais pas la chose que je demande est disponible ou non, mais je veux juste savoir si il existe et comment il fonctionne. Voici donc ma question:
J'ai 2-3 personnalisé modèle de classe de mon propre. Par exemple, le Client,
L'employé et le Produit. Maintenant j'ai le nom de la classe dans une chaîne de caractères. et basé sur
le nom de la classe à venir dans une chaîne, je dois créer son objet et
retour à la VUE. Comment pourrais-je y parvenir?
Je sais une option de IF ELSE
déclaration, mais je veux essayer de mieux,"Dynamique" chemin...
- Ce que vous cherchez est la réflexion, mais en règle générale, si vous êtes en utilisant la réflexion, vous pourriez être en train de faire quelque chose de mal (il y a des cas où vous avez besoin de réflexion, mais il n'est pas commun).
Vous devez vous connecter pour publier un commentaire.
Avoir le nom de la classe dans la chaîne n'est pas assez pour être en mesure de créer son instance.
Comme une question de fait, vous aurez besoin de l'espace de nom complet y compris le nom de la classe pour créer un objet.
En supposant que vous avez les éléments suivants:
Que vous vous pouvez créer une instance de cette classe, l'objet de la classe
MyNamespace.MyInternalNamespace.MyClass
en utilisant l'une des techniques suivantes:ou ceci:
Espère que cette aide, s'il vous plaît laissez-moi savoir si ce n'.
cela ne fonctionne..
Ce Qui Concerne Avi
le plus simple est d'utiliser l'Activateur. Pass nom de la classe à GetType et de Créer une nouvelle instance.
ClassInstance s1 = (ClassInstance)Activator.CreateInstance(Type.GetType("App.ClassInstance"));
Ce qui concerne,
Nik
Classe Activator fait ce travail dans .net et cette technique est très utile pour l'injection de dépendances genre de scénarios.
Assurer que vous déballer avant la conversion de type sinon il va donner de l'erreur de conversion.