Comment ajouter une méthode à déléguer Utilisation de la réflexion? Considérons que j'ai deux assemblées, une AAA contient la définition des délégués et une autre BBB contient la méthode à ajouter au délégué. Dans BBB, j'ai ajouté la méthode au délégué dans AAA. Comment réaliser ce scénario?Délégués en C#
0
A
Répondre
3
Quelque chose comme ça (avertissement - ne compilera pas testé):
// get the methodinfo for the method you want to add
MethodInfo methodToAdd = typeof(AAA).GetMethod("MyMethod");
// create a delegate instance for it
Delegate methodDelegate = Delegate.CreateDelegate(typeof(BBB.MyDelegate), methodToAdd);
// get the event you want to add to
EventInfo eventToAddMethodTo = typeof(BBB).GetEvent("MyEvent");
// call the event's add method, with the delegate you want to add
eventToAddMethodTo.AddEventHandler(null /*or the AAA instance if this is a non-static event */, methodDelegate);
Si ce n'est pas un événement que vous voulez ajouter, mais juste un autre Delegate
, vous utilisez Delegate.Combine
:
Delegate combinedDelegate = Delegate.Combine(oldDelegate, methodDelegate);
Questions connexes
- 1. délégués standard en C#
- 2. Objectif C: délégués multiples
- 3. Problème avec les délégués en C#
- 4. Délégués/Méthode anonyme en C# 2
- 5. à quoi servent les délégués en C#?
- 6. Objective-c Délégués
- 7. Délégués délégués
- 8. boost :: Emballage signal C# délégués
- 9. C# Anonymus délégués efficacité/sécurité
- 10. délégués et objectif protocoles c
- 11. Délégués en python
- 12. Génération dynamique des types de délégués en C#
- 13. Plusieurs délégués NSURLConnection dans Objective-C
- 14. Portée lexicale dans C# lambda/délégués anonymes
- 15. C# - Les délégués et les événements
- 16. Que sont les délégués dans C#?
- 17. Objective C interfaces, délégués, et protocoles
- 18. C# Délégués à travers la publication
- 19. C# Chaîne de responsabilité avec les délégués
- 20. Evénements délégués
- 21. Translating C# Les délégués de 2005 Projet à C# 2003
- 22. délégués - Fonctionnalité
- 23. délégués multicast
- 24. délégués Templated
- 25. Délégués en Java comme dans .NET
- 26. appelant des méthodes de délégués en option
- 27. Utilisation des délégués en tant que paramètres
- 28. ReSharper: Mise en forme des délégués
- 29. délégués et événements
- 30. Délégués multithread/événements
Qu'est-ce que voulez-vous dire avec "ajouter la méthode au délégué"? Pouvez-vous peut-être montrer un petit échantillon de code de ce que vous essayez d'atteindre (pseudo-code est bien, juste pour communiquer l'idée). Aussi, vérifiez si cela couvre vos besoins: http://stackoverflow.com/questions/3024253/create-delegate-via-reflection –
En fait, j'avais l'événement et la déclaration de délégué en BBB, et une méthode de gestionnaire en AAA. J'ai réussi Abonné une méthode à un événement dans AAA. Maintenant, je dois mettre en œuvre l'événement sans utiliser, c'est-à-dire avoir à ajouter une méthode de AAA à un délégué de BBB dans le segment de codage AAA – user518333