在C#中动态调用方法的选项

Sea*_*ers 4 c# reflection methods invocation intermediate-language

我已经看到了很多与我如何调用这样的方法相关的问题.我没有找到的是如何通过反射或csharp中的任何其他方法调用方法的不同选项的列表.

有人能详细解释在csharp中动态调用方法的不同方法吗?从反射到发射IL以及其间的任何其他方式.我想知道在资源方面从最昂贵到最便宜的所有不同方式.

dtb*_*dtb 5

为了帮助您入门,以下是我可以想到的在.NET中调用方法的方法:

  • 呼叫
  • Callvirt
  • 代表
  • DynamicMethod的
  • MethodInfo.Invoke
  • Type.InvokeMember
  • TypeDescriptor
  • Reflection.Emit的
  • 表达树

我记得有些文章比较了大多数的速度,但我现在似乎无法找到它.

谷歌快速搜索了这些链接:[链接] [链接] [链接] [链接] [链接]