Pregunta

He visto un buen número de preguntas relacionadas con cómo puedo invocar un método como este y que. Lo que no he encontrado es una lista de las diferentes opciones de cómo invocar un método a través de la reflexión o cualquier otro medio de CSharp.

Puede alguien explicar en detalle las diferentes formas de invocar dinámicamente un método en el CSharp? De la reflexión a la IL emisor y cualquier otra manera en el medio. Me gustaría saber de todas las diferentes maneras de más caro a menos costoso en términos de recursos.

¿Fue útil?

Solución

Para ir abriendo boca, aquí están las maneras de invocar un método en .NET que se me ocurre:

  • Llamar
  • Callvirt
  • Delegado
  • DynamicMethod
  • MethodInfo.Invoke
  • Type.InvokeMember
  • TypeDescriptor
  • Reflection.Emit
  • árboles de expresión

Recuerdo algún artículo que compara la velocidad de la mayoría de ellos, pero me parece que no puede encontrarlo en el momento.

Una rápida búsqueda en Google subió con estos enlaces: [ Link] [Link] [Link] [Link] [Link]

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top