J'ai une classe backend qui doit déclencher un événement sans arguments. Le MethodInvoker a la signature désirée, mais il semble un peu étrange de l'utiliser dans une classe backend car il est défini dans System.Windows.Forms. Y a-t-il un autre délégué avec cette signature dans d'autres espaces de noms dans le .Net Framework? Si non, pensez-vous que je devrais définir un délégué avec cette signature moi-même ou utiliser MethodInvoker à la place?Utilisation de MethodInvoker dans une classe backend
Répondre
Si vous utilisez .NET 2.0:
Définissez votre propre type de délégué. Référencer un assemblage uniquement pour un type aussi simple n'est pas une bonne idée à mon avis.
De nombreux frameworks le font aussi. Même dans mscorlib (2.0), il y en a peut-être. Cependant, ils pourraient être dans des espaces de noms plus profonds dont l'utilisation pourrait être déroutante en combinaison avec votre classe.
Par conséquent, utilisez votre propre type de délégué en dehors de .NET 3.5.
Si vous pouvez utiliser .NET 3.5, il y a le délégué Action
. Sinon, vous pouvez toujours déclarer que (+ toute autre Action
ou Func
délégués que vous voulez) dans une classe Utils
ou similaires: déjà
public delegate void Action();
public delegate void Action<T1, T2>(T1 arg0, T2 arg1);
public delegate TResult Func<T1, TResult>(T1 arg0);
public delegate TResult Func<T1, T2, TResult(T1 arg0, T2 arg1);
etc ...
Notez que .NET 2 comprend un void Action<T>(T arg)
délégué, mais aucun des autres
- 1. Quelle est la syntaxe correcte pour cette utilisation de MethodInvoker?
- 2. Utilisation de NSMutableArray dans une classe
- 3. Utilisation de Django en tant que backend pour Cappuccino
- 4. Utilisation de C++ pour les calculs backend dans une application Web
- 5. Dois-je utiliser MethodInvoker ou action
- 6. Utilisation d'un second backend avec Varnish 1.0.3-2 dans le cas de 404 depuis le premier backend
- 7. Utilisation de zones de texte dans une classe
- 8. Utilisation Ui Applicatiopn classe dans l'autre classe
- 9. Utilisation d'un AppDomain pour instancier une classe dans une DLL
- 10. Utilisation de MEF, injection dans une classe d'importation
- 11. Utilisation de variables parents dans une classe étendue en PHP
- 12. Utilisation de "includes" dans une classe PHP OO
- 13. Communication backend dans Silverlight
- 14. Utilisation de la classe LinkedList dans SmallTalk?
- 15. Utilisation d'objets de classe Managed dans Unmanaged
- 16. utilisation de la classe CLLocationManager dans l'iPad?
- 17. Utilisation de OpenGL glutDisplayFunc dans la classe
- 18. Utilisation d'un ActionListener dans une classe pour démarrer un timer dans une autre classe
- 19. Utilisation de la classe EnumSet dans GWT
- 20. Comment puis-je tester un site Web sans classe backend?
- 21. Obtenir une KeyError dans le backend DB de django-digest
- 22. Utilisation d'une classe comme une variable publique dans asp.net
- 23. PyAMF choix de backend!
- 24. Utilisation de la classe NetConnection
- 25. Utilisation de Generics sur une classe de base Repository
- 26. Utilisation d'une classe VB du même projet de site Web ASP.NET dans une classe C#
- 27. Utilisation de la classe FXFont
- 28. Utilisation de la classe HttpWebRequest
- 29. Utilisation d'une classe java pour créer une base de données
- 30. Utilisation de TCollection avec une classe déjà définie
Malheureusement, j'utilise .NET Framework 2.0. Que pensez-vous généralement de l'utilisation de MethodInvoker dans une classe backend? – Ikaso
Je créerais vos propres versions des délégués .NET 3.5 dans un espace de nom commun; De cette façon, il est facile de convertir en 3.5 quand vous le faites. Et MethodInvoker est explicitement conçu pour les invocations de threads de winforms; l'utiliser comme méthode générale semble conceptuellement erroné. – thecoop
@thecoop pourriez-vous me diriger vers un exemple montrant une solution .Net 2? Merci – Fandango68