Question

Est-il possible d'appeler une méthode .NET à partir de PowerShell avec une liaison anticipée?

J'ai un script de pipeline qui appelle une seule méthode .NET dans processus {...} . PowerShell appelle cette méthode par réflexion. À l’heure actuelle, Invoke (et non la méthode elle-même, mais uniquement un appel à réflexion) occupe 70% du temps d’exécution total.

La méthode étant toujours la même, je préférerais donc demander à PowerShell de ne pas utiliser la réflexion.

Était-ce utile?

La solution

Je pense que les seuls types d'appels de méthode à être liés tôt dans PowerShell, ou du moins aussi tôt que possible dans un langage dynamique, sont les suivants

  1. CmdLets.
  2. Méthodes statiques

Je ne suis pas aussi sûr de # 2. Je crois qu'ils doivent encore utiliser la réflexion pour en arriver à la méthode sous-jacente.

Les CmdLets sont probablement le meilleur choix ici. Dans ce cas, l'appel réel est lié tôt, mais les paramètres doivent encore subir un processus de conversion. Essayez de déplacer votre appel de méthode dans un CmdLet et de voir si cela vous aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top