2009-11-10 2 views
4

J'ai vu pas mal de questions concernant comment invoquer une méthode comme celle-ci. Ce que je n'ai pas trouvé est une liste des différentes options de comment invoquer une méthode via la réflexion ou tout autre moyen dans csharp. Est-ce que quelqu'un peut expliquer en détail les différentes façons d'invoquer dynamiquement une méthode dans csharp? De la réflexion à l'émission de IL et de toutes les autres façons. Je voudrais savoir de toutes les manières différentes du plus cher au moins cher en termes de ressources.Options d'invocation dynamique de méthodes en C#

Répondre

5

Pour commencer, voici les façons d'invoquer une méthode dans .NET que je peux penser à:

  • Appel
  • callvirt
  • Délégué
  • DynamicMethod
  • MethodInfo. Appeler
  • Type.InvokeMembre
  • TypeDescripteur
  • Reflection.Emit
  • Les arbres d'expression

Je me souviens de certains article comparant la vitesse de la plupart d'entre eux, mais je ne peux pas sembler le trouver à l'heure actuelle.

Une recherche rapide sur Google est venu avec ces liens: [Link][Link][Link][Link][Link]

+0

peut vous fournir des extraits de code les plus populaires? Sont-ils classés par coût de performance? –

+0

Et bien sûr, la fonctionnalité "dynamique" dans C# 4 utilise tout ce qui précède. :-) –