Comment faire de la dynamique de création de l'objet et de la méthode d'invocation dans .NET 3.5
Comment le code est de créer un objet de la classe:
string myClass = "MyClass";
Du type ci-dessus, et ensuite appeler
string myMethod = "MyMethod";
Sur cet objet?
- Je pense que vous devez préciser votre question. Êtes-vous essayer de créer dynamiquement le type, c'est à dire, de définir dynamiquement une classe, ainsi que dynamiquement appeler une méthode sur ce type?
Vous devez vous connecter pour publier un commentaire.
Type.GetType(string)
pour obtenir le type de l'objet.Activateur.CreateInstance(Type)
pour créer une instance.Type.GetMethod(string)
pour récupérer une méthode.MethodBase.Invoke(object, object[])
pour appeler la méthode sur l'objetExemple, mais avec pas de contrôle d'erreur:
Chaque étape nécessite une vérification soigneuse - vous ne pouvez pas trouver le type, il ne peut pas avoir un constructeur sans paramètre, vous ne pouvez pas trouver la méthode, vous pouvez l'appeler avec le mauvais types d'argument.
Une chose à noter: Type.GetType(string) les besoins de l'assemblée-nom du type, sauf si elle est en cours d'exécution de l'assemblée ou mscorlib.
J'ai créé une bibliothèque qui simplifie la dynamique de création de l'objet et l'appel à l'aide .NET, vous pouvez télécharger la bibliothèque et le code de google code: La Liaison Tardive Helper
Dans le projet, vous trouverez une Page Wiki avec l'utilisation, ou vous pouvez également consulter ce article dans CodeProject
À l'aide de ma bibliothèque, votre exemple ressembler à ceci:
Ou encore plus court:
Il utilise une interface fluide et vraiment simplifie ce genre d'opérations. J'espère que vous pourriez trouver utile.
Ce qui suit suppose un objet avec un constructeur public et une méthode qui retourne une certaine valeur, mais ne prend pas de paramètres.
En supposant que votre classe est en cours d'exécution de l'assemblée, votre constructeur et votre méthode est sans paramètre.